Vertiefendes Verständnis des Atexit-Moduls in Python

高洛峰
Freigeben: 2017-03-08 09:21:01
Original
1127 Leute haben es durchsucht

Das atexit-Modul ist sehr einfach. Es definiert nur eine Registerfunktion, um eine Rückruffunktion zu registrieren, wenn das Programm beendet wird. In dieser Rückruffunktion können wir einige Ressourcenbereinigungsvorgänge durchführen. Der folgende Artikel stellt hauptsächlich die relevanten Informationen des Atexit-Moduls in Python vor. Freunde in Not können darauf verweisen.

Einführung in das Atexit-Modul

Das Python-Atexit-Modul definiert eine Registerfunktion, die zum Registrieren einer Exit-Funktion in Python verwendet wird interpreter Diese Funktion wird automatisch ausgeführt, wenn der Interpreter normal beendet wird, und wird im Allgemeinen zum Ausführen einiger Ressourcenbereinigungsvorgänge verwendet. atexit führt diese Funktionen in der umgekehrten Reihenfolge aus, in der sie registriert wurden; registrieren Sie beispielsweise A, B, C und führen Sie sie in der Reihenfolge C, B, A aus, wenn der Interpreter beendet wird.

Hinweis: Wenn das Programm ungewöhnlich abstürzt oder über os._exit() beendet wird, wird die registrierte Exit-Funktion nicht aufgerufen.

Offizielle Dokumentation: https://docs.python.org/3.5/library/atexit.html

Exit-Funktion registrieren

atexit.register(func, *args, **kargs)
Nach dem Login kopieren

Geben Sie func als die Funktion ein, die bei Beendigung ausgeführt werden soll. Alle optionalen Argumente, die an func übergeben werden sollen, müssen als Argumente an register() übergeben werden. Dieselbe Funktion und dieselben Parameter können mehrfach registriert werden.

Wenn das Programm beendet wird, werden die registrierten Funktionen in der Reihenfolge „First-in, Last-out“ aufgerufen. Wenn während der Ausführung der Exit-Funktion eine Ausnahme ausgelöst wird, gibt atexit die Ausnahmeinformationen aus und führt den nächsten Rückruf weiter aus, bis alle Exit-Funktionen ausgeführt sind, und löst die zuletzt empfangene Ausnahme erneut aus.

Beispiel

Von Dekorateur:

#!/usr/bin/env python
from atexit import register
def main():
 print('Do something.')
@register
def _atexit():
 print('Done.')
if __name__ == '__main__':
 main()
Nach dem Login kopieren

Nicht-Dekorator-Methode:

#!/usr/bin/env python
from atexit import register
def main():
 #pass
 print('XX')
def goodbye(name, adjective):
 print('Goodbye, %s, it was %s to meet you.' % (name, adjective))
 
register(goodbye, 'Donny', 'nice')
# or:
# register(goodbye, adjective='nice', name='Donny')
if __name__ == '__main__':
 main()
Nach dem Login kopieren

Exit-Funktion löschen [im Allgemeinen nicht verwendet]

> atexit.unregister(func)
>
Nach dem Login kopieren

Entfernen Sie func aus der Liste der Funktionen, die ausgeführt werden, wenn der Interpreter geschlossen ist. Nach dem Aufruf von unregister() wird func beim Schließen des Interpreters nicht aufgerufen, selbst wenn es mehrmals registriert ist. Wenn func nicht registriert wurde, führt unregister() nichts aus.

Für ein tieferes Verständnis des Atexit-Moduls in Python und verwandter Artikel achten Sie bitte auf die chinesische PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!