是这样的,我封装了一个类,然后许多类中的方法要加一些相同的功能(这些功能都是基于这个类的),我知道装饰器能简化这个过程,但google了许多,没有发现在类中如何实现装饰器.
比如:
class Test(object):
self.i = 1
def fun(self):
print 'hehe'
我想要在一些方法前加入特定改变self.i
的方法并把参数传进去,类似这样:
def decorator(self, args):
def _deco(func):
def __deco():
self.i = args
func()
return __deco
return _deco
@decorator(self, args)
def fun(self):
print 'hehe'
这样我就可以把self.i
改成args了.但是在类中这种方法不管用~
所以问题来了:
- 类中可不可以使用并定义装饰器,如何使用?
- 如果不能使用可以用什么方法代替?
非常感谢
看着问题有点绕,肯定是能做到的。
我理解题主大概是想要这样的效果: