Уведомления

Группа в Telegram: @pythonsu

#1 Май 25, 2011 09:05:02

indus
От:
Зарегистрирован: 2011-02-07
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему так происходит и как это исправить?

Здравствуйте!

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

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

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

if __name__ == '__main__':

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

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

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



Офлайн

#2 Май 25, 2011 09:24:06

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Почему так происходит и как это исправить?

MyClass() кривой,

возможно поток не завершает работу.

Офлайн

#3 Май 25, 2011 09:25:41

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Почему так происходит и как это исправить?

> как ето исправить?
переписать

Офлайн

#4 Май 25, 2011 09:35:24

indus
От:
Зарегистрирован: 2011-02-07
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему так происходит и как это исправить?

я проверил, __del__ действительно не вызывается во втором случае.

в первом все ок.



Офлайн

#5 Май 25, 2011 10:04:33

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Почему так происходит и как это исправить?

Здесь обсуждается, почему __del__ может не вызваться



Офлайн

#6 Май 25, 2011 11:22:42

indus
От:
Зарегистрирован: 2011-02-07
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему так происходит и как это исправить?

ZAN
спасибо за помощь! очень интересно =)
теперь буду знать что это за кольца такие. кстати, я все таки думаю, что колец надо избегать в принципе - на этапе дизайна. weakref мне кажется тока маскирует проблемы и когда-нибудь вся эта конструкция с грохотом навернется. но это всего лишь мнение неискушенного новичка =)



Офлайн

#7 Май 25, 2011 12:35:40

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Почему так происходит и как это исправить?

indus

indus
Почему так происходит и как это исправить?
Еще раз так тему назовете – удалю



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version