[英]Counting number of times a function is called within a Class
我想算的次数函数的数量obtainingparams
类中已经调用了现在用的装饰counted
如下做到这一点。 我知道这将在类之外起作用,但是,我收到错误TypeError: counted() missing 1 required positional argument: 'fn'
在@counted
行中TypeError: counted() missing 1 required positional argument: 'fn'
,并且不知道如何处理。
def counted(self, fn):
def wrapper(*args, **kwargs):
wrapper.called+= 1
return fn(*args, **kwargs)
wrapper.called= 0
wrapper.__name__= fn.__name__
return wrapper
@counted
def obtainingparams(self, df, tau_1, tau_2, residuals):
print('Does something')
谢谢
假设未在类内定义计数,请执行以下操作:
def counted(fn):
def wrapper(*args, **kwargs):
wrapper.called+= 1
return fn(*args, **kwargs)
wrapper.called= 0
wrapper.__name__= fn.__name__
return wrapper
class MyClass(object):
@counted
def obtainingparams(self, df, tau_1, tau_2, residuals):
print('Does something')
您将自己置入装饰器的唯一原因是,如果您正在执行以下操作:
class MyDecorator(object):
def __init__(self):
self.called = 0
def counted(self, fn):
def wrapper(*args, **kwargs):
self.called += 1
return fn(*args, **kwargs)
wrapper.__name__= fn.__name__
return wrapper
a_dec = MyDecorator()
class MyClass(object):
@a_dec.counted
def obtainingparams(self, df, tau_1, tau_2, residuals):
print('Does something')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.