我有一个装饰功能(简化版):
class Memoize:
def __init__(self, function):
self.function = function
self.memoized = {}
def __call__(self, *args, **kwds):
hash = args
try:
return self.memoized[hash]
except KeyError:
self.memoized[hash] = self.function(*args)
return self.memoized[hash]
@Memoize
def _DrawPlot(self, options):
do something...
现在我想将此方法添加到预先存在的类中。
ROOT.TChain.DrawPlot = _DrawPlot
当我调用这个方法时:
chain = TChain()
chain.DrawPlot(opts)
我有:
self.memoized[hash] = self.function(*args)
TypeError: _DrawPlot() takes exactly 2 arguments (1 given)
为什么它不传播自我?