我想对库类的一个方法进行monkey-patch,以便为param定义一个不同的默认值。这失败了:
from functools import partial
class A(object):
def meth(self, foo=1):
print(foo)
A.meth = partial(A.meth, foo=2)
a = A()
a.meth()
使用:
Traceback (most recent call last):
File "...", line 10, in <module>
a.meth()
TypeError: meth() missing 1 required positional argument: 'self'
正确的做法是什么?
(原始代码对循环中的方法名使用
getattr
)链接问题中的答案涉及定义新的模块级函数-我想避免新的函数定义
最佳答案
In [32]: from functools import partialmethod
In [33]: A.meth = partialmethod(A.meth, foo=2)
In [34]: a = A()
In [35]: a.meth()
2
关于python - Monkey使用类中的原始方法修补了python实例方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54460513/