Найти - Пользователи
Полная версия: Почему так происходит и как это исправить?
Начало » Python для новичков » Почему так происходит и как это исправить?
1
indus
Здравствуйте!

Вот так работает:

def main( argv = None ):
ttf = MyClass()

if __name__ == '__main__':
sys.exit(main(sys.argv))
А вот так нет:

if __name__ == '__main__':

ttf = MyClass()
в этом примере мы висим.

MyClass внтури себя создает поток который должен уничтожатся при вызове __del__
Похоже что __del__ не вызывается во втором случае.

Подскажите пожалуйста в чем может быть дело и как ето исправить?
o7412369815963
MyClass() кривой,

возможно поток не завершает работу.
o7412369815963
> как ето исправить?
переписать
indus
я проверил, __del__ действительно не вызывается во втором случае.

в первом все ок.
ZAN
Здесь обсуждается, почему __del__ может не вызваться
indus
ZAN
спасибо за помощь! очень интересно =)
теперь буду знать что это за кольца такие. кстати, я все таки думаю, что колец надо избегать в принципе - на этапе дизайна. weakref мне кажется тока маскирует проблемы и когда-нибудь вся эта конструкция с грохотом навернется. но это всего лишь мнение неискушенного новичка =)
Александр Кошелев
indus
indus
Почему так происходит и как это исправить?
Еще раз так тему назовете – удалю
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB