[英]Decorator function using *args and **kargs as parameters for its __call__ method,
我目前正在使用一个装饰函数,如果在装饰器类中将某个 bool 设置为 True,该函数应该检查函数的注释。 我有点困惑的是装饰器函数的__call__
方法头:
def __call__(self, *args, **kargs):
及其参数列表。
我知道它的参数*args
和**kargs
用于提供给函数的参数,但是在我正在处理的问题中,我必须调用原始函数(这是从装饰器创建的实例对象中的一个属性名为_f
类)。
我将如何使用提供给装饰函数的参数来调用_f
? 我应该检查args
/ kargs
是否为空并self._f(args)
空参数调用self._f(args)
/ self._f(kargs)
吗?
当你装饰方法时:
class Foo:
@someDecorator
def my_method(self, x, y):
...
它实际上还不是一种方法; 这只是一个函数。 在你的装饰器中,你这样对待它:
def someDecorator(f):
def _(*args, **kwargs):
...
return f(*args, **kwargs)
return _
当_
被调用时, self
将包含在*args
参数中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.