【发布时间】:2022-01-10 17:37:10
【问题描述】:
我读过这个
但我没有正确使用参数
class decoratortest:
def dec(func):
def wrapper(self,*args,**kwargs):
func(*args,**kwargs)
func(*args,**kwargs)
return wrapper
@dec
def printer(self,a):
print(a)
def dectest(self):
self.printer('hi')
x = decoratortest()
x.dectest()
我得到了通常的位置错误参数。什么是正确的语法,所以我可以打印 hi 两次?
对于未来,这行得通:
class decoratortest:
def dec(func):
def wrapper(self,*args,**kwargs):
func(self,*args,**kwargs)
func(self,*args,**kwargs)
return wrapper
@dec
def printer(self,a):
print(a)
def dectest(self):
self.printer('hi')
x = decoratortest()
x.dectest()
非常棘手,你不要在装饰器中输入 self,但你在底层包装器和 func 项中输入。
【问题讨论】: