【发布时间】:2021-12-23 14:27:07
【问题描述】:
我正在尝试将 self 对象传递给我的装饰器以访问其内容,但出现以下错误:
def log_decorator():
def log_real_decorator(f):
@wraps(f)
def wrapper(self,*args, **kw):
print "I am the decorator, I know that self is", self, "and I can do whatever I want with it!"
print "I also got other args:", args, kw
f(*args, **kw)
return wrapper
return log_real_decorator
class Foo(object):
@log_decorator
def meth(self):
print "I am the method, my self is", self
f = Foo()
f.meth()
错误:-
TypeError: log_decorator() takes no arguments (1 given)
【问题讨论】:
-
你得到一个错误,因为
log_decorator没有将函数作为参数,它返回的函数是,所以至少要了解你要去哪里错误的将其更改为@log_decorator()或删除额外的功能层并在全局级别使用log_real_decorator,然后您将得到更相关的错误。
标签: python python-3.x python-decorators