Мне нужно выполнить последовательность вызовов, каждый из которых может вызвать исключение, и мне нужен хороший способ защиты вызовов. Я пытаюсь найти более профессиональный способ сделать в Python следующее:
def protected_call(method):
result = None
try:
result= method()
except: pass
return result
class Test():
def terminate():
protected_call(self.could_throw_exception)
protected_call(self.receiver.stop)
protected_call(self.connection.stop)
#etc
Есть ли лучший способ сделать это? Может быть с аннотацией?
Просто чтобы уточнить: я не хочу добавлять аннотацию к исходному методу, т.е.:
class Receiver():
@protected
def stop():
print 'I dont want to do this'
class Test():
@protected
def could_throw_exception():
print 'dont want this'
def stop():
self.could_throw_exception()
self.receiver.stop()
Вот чего я хочу:
class Receiver():
def stop():
print 'I want this'
class Test():
def could_throw_exception():
print 'like this'
'''This one cares about crashing'''
def stop()
self.could_throw_exception()
self.receiver.stop()
self.connection.stop()
'''This one does not'''
def terminate():
#i want to define it at the call level.
@protected
self.could_throw_exception()
@protected
self.receiver.stop()
Подробнее здесь: https://stackoverflow.com/questions/550 ... -in-python
Вызов защищенного метода в Python? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Насколько этот вызов виртуального метода быстрее, чем вызов запечатанного метода?
Anonymous » » в форуме C# - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-