【发布时间】:2022-01-22 03:48:14
【问题描述】:
class Something:
def __init__(self, ...):
...
def update(self):
...
def add_update(self, func):
def fct(*args, **kwargs):
self.update()
func(*args, **kwargs)
return fct
@add_update
def method(self, some_parameter):
...
所以基本上我有这个类,我想在调用类中的方法之前自动调用函数“update()”。但我得到这个错误:
TypeError: add_update() missing 1 required positional argument: 'func'
我真的不明白这里出了什么问题,我也在互联网上看到了一些教程,他们做了类似的事情并且它正在工作。谁能解释一下这里出了什么问题以及如何解决?
【问题讨论】:
-
你需要传递参数func。
-
您没有将
add_update用作方法,而是将其用作装饰器函数,因此它没有self参数。self将是fct的第一个参数。
标签: python python-decorators python-class