【发布时间】:2026-02-03 00:15:02
【问题描述】:
我有一个库中的类,比如说 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
我明白为什么,但我无法解决问题
【问题讨论】: