我有一个库中的类,可以说MyClass
是一个方法my_method
。
from MyLibrary import MyClass
obj = MyClass()
result = obj.my_method('arg')
我无法理解原始实现,但我想装饰my_method
,特别是我想检查返回值是否为not None
,以防引发异常,如:
result = obj.my_method('arg')
if result is None: raise ValueError()
这很无聊,因为我需要做很多次。特别是我不想在调用时更改代码obj.my_method('arg')
。我在尝试着:
def safe_method(self, *args):
result = self.my_method(*args)
if result is None: raise ValueError()
return result
MyClass.my_method = safe_method
这不起作用:
RuntimeError: maximum recursion depth exceeded while calling a Python object
我明白为什么,但我无法解决问题