下面是我的测试代码,它为一个可以改变self(当前对象实例)的类方法提供了一个decoratorclass Test(object):
def __init__(self):
self.x = 5
def _change_x(self):
print "in _change_x"
def decorator(f):
print "in decorator"
def wrapped(*args, **kwargs):
print "in wrapped"
print args, kwargs
self.x = 8
f(*args, **kwargs)
return wrapped
return decorator
@_change_x
def print_x(self):
print "in print_x, x: %d" % self.x
return self.x
if __name__ == "__main__":
test = Test()
print "Initial value for x: %d" % test.x
print "Test if it changed? x: %d" % test.print_x()
未调用decorator中包装的内部方法。有谁能帮我指出测试代码中的错误吗。
我希望在类中定义这种decorator,并用于修饰该类中的几个方法,以便在调用时更改类成员。在