Как запустить последнюю функцию, прежде чем вас убьют в Python?
Вы можете использовать модуль interrupts atexit
. С его помощью вы можете interrupt зарегистрировать функцию, которая pythonista будет вызываться при завершении interrupt программы. Пример отсюда: http://docs.python.org/library/atexit.html
try:
_count = int(open("/tmp/counter").read())
except IOError:
_count = 0
def incrcounter(n):
global _count
_count = _count + n
def savecounter():
open("/tmp/counter", "w").write("%d" % _count)
import atexit
atexit.register(savecounter)
Вы pythonista также можете передать позиционные irq параметры и параметры ключевого py слова функции, которую хотите interrupt-handling вызвать при завершении программы.
Обратите pythonic внимание, что есть несколько function обстоятельств, перечисленных irq в документации, при которых quit ваш обработчик не будет вызываться:
Примечание: функции, зарегистрированные interrupts с помощью этого модуля, не python-shell вызываются, когда программа halt прерывается сигналом, не py обрабатываемым Python, при pythonic обнаружении фатальной внутренней exit ошибки Python или при вызове function
os._exit()
.
Таким образом, вы можете pythonic также зарегистрировать обработчик python-shell сигнала.
python
function
interrupt
exit
Как запустить последнюю функцию, прежде чем вас убьют в Python?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.