У меня есть метод destroy(), который вызывается до того, как мой поток спускается.Почему метод python не возвращается?
def destroy(self):
self.logger.debug("Instance is being destroyed")
//do stuff
self.logger.debug("Instance has been destroyed")
Это код, откуда он называется:
if (__name__ == '__main__'):
try:
instance = device_instance()
while True:
//do stuff
if input_string == 'destroy':
instance.destroy()
logger.debug("Back in main after destroying")
break
else:
//do stuff
time.sleep(.100)
except Exception, ex:
logger.debug("Exception occurred" + str(ex))
except:
logger.debug("Unhandled exception occurred")
Теперь, когда я запускаю его, проблема я вижу вход заявления «Instance уничтожается» и «Instance был разрушен» и я не вижу «Back in main после уничтожения». Это означает, что мой destroy() никогда не возвращается. Я попытался добавить явный оператор return, по-прежнему та же проблема. Если я добавлю sys.exit (0) для destroy() в конце, он вызывает исключение, которое в конечном итоге попадает в main. В чем может быть проблема?
Вам не нужна скобка вокруг `__name__ == '__main __'`; на самом деле, они выглядят неправильно. – katrielalex 2010-12-09 21:38:04
Он работает в обоих направлениях - с круглой скобкой или без нее. – quest 2010-12-09 22:12:46
Все, Спасибо за помощь. Я узнал, что один из моих сверстников начал называть уничтожение моей нити, надеясь, что это остановит мой поток, но на самом деле у меня был отдельный метод остановки, который вызывал бы разрушение, а затем поток выходил. Ошибки парного программирования, я думаю! – quest 2010-12-09 22:18:12