Python atexit.register не вызывается после завершения - PullRequest
1 голос
/ 25 марта 2020

Я работаю над программой, которая должна вызывать функцию непосредственно перед выходом, и успешно использовала atexit.register (myFunction) для этого, пока она не перестала работать. Даже когда я пытаюсь запустить простой скрипт, зарегистрированная функция не вызывается ...

Вот простой код:

import atexit

def all_done():
    print ('all_done()')

print ('Registering')
atexit.register(all_done)
print ('Registered')

И вывод:

Registering
Registered

Когда это должно быть:

Registering
Registered
all_done()

В чем может быть проблема? Как я уже сказал, какое-то время это работало, а потом внезапно прекратилось.

1 Ответ

1 голос
/ 25 марта 2020

В итоге я не использовал atexit, вместо этого просто

try:
   ...
finally:
   ...

, который сейчас работает. Все еще не знаю, почему atexit не работает, хотя ...

...