if not hasattr(self, 'main'):
self.main = MainWindow(self.factory.loginfo)
self.main.addServer(self.factory.logingo)
PS: будьте осторожны с try: ... except: ...
без каких-либо особых исключений, если только вы не знаете, что делаете.потому что это скрывает вероятные (и неожиданные) исключения.Вместо этого, например, напишите:
try:
...
except AttributeError:
...
или что-либо, что ожидается и будет обработано, вместо AttributeError
(например, KeyError
или IndexError
или ImportError
или что-то) И напишитекак можно меньше кода в блоке try, например, вы можете написать приведенный выше код следующим образом:
try:
self.main
except AttributeError:
self.main = MainWindow(self.factory.loginfo)
self.main.addServer(self.factory.logingo)
Это эквивалентно этому (интересно знать, что сам hasattr
использует попытку кроме!),Но использование hasattr здесь чище и короче.