Вызов защищенного метода в Python?Python

Программы на Python
Anonymous
Вызов защищенного метода в Python?

Сообщение Anonymous »

Мне нужно выполнить последовательность вызовов, каждый из которых может вызвать исключение, и мне нужен хороший способ защиты вызовов. Я пытаюсь найти более профессиональный способ сделать в 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»