class Foo():
def __init__(self, a):
self.a = a
def decorator(self, method):
def wrapper(*args, **kws):
if self.a == 'a' :
return method(*args, **kws)
else:
print ('cannot find attr a')
return wrapper
class Bar():
def __init__(self, b):
self.b = b
self.foo = Foo(b)
@self.foo.decorator
def method(self):
print (self.b)
bar = Bar('a')
bar.method()
在这种情况下,我想使用实例方法来装饰另一个类中的另一个方法。每个要装饰的装饰器或方法都必须访问一些实例变量。所以它们不能与给定的类分开,甚至不能成为静态方法。当然,我的代码不起作用,因为我没有在@句子中定义'self'
。任何人都可以给我一些建议来实现它,或者这只是一条死胡同?