【发布时间】:2023-03-29 19:44:02
【问题描述】:
如何将类字段作为参数传递给类方法上的装饰器?我想做的是:
class Client(object):
def __init__(self, url):
self.url = url
@check_authorization("some_attr", self.url)
def get(self):
do_work()
它抱怨 self 不存在将self.url 传递给装饰器。有没有办法解决这个问题?
【问题讨论】:
-
这是您可以控制的自定义装饰器,还是您无法更改的自定义装饰器?
-
它是我的装饰器,所以我可以完全控制它
-
它在初始化之前被调用我认为是问题......
-
问题是 self 在函数定义时不存在。你需要把它变成一个偏函数。