Вызов защищенного метода в 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»