Невозможно сослаться на импортированный модуль в __del __ ()

Я использую объект __ del __ () , чтобы отменить подписку на событие (используя схему событий, подобную this ):

import my_enviroment
class MyClass():
    def __del__(self):
        my_environment.events.my_event -= self.event_handler_func

Как ни странно, в конце выполнения программы я получил следующую ошибку:

Exception AttributeError: "'NoneType' object has no attribute 'events'" in > ignored

Как такое могло быть ?! my_environment - это модуль, который я импортировал, почему он может быть None? ( events - это глобальный объект в нем с перехватчиками событий, такими как my_event )

5
задан Community 23 May 2017 в 10:30
поделиться