Python类中装饰器使用与定义具体怎么操作,python装饰,是这样的,我封装了一个类


是这样的,我封装了一个类,然后许多类中的方法要加一些相同的功能(这些功能都是基于这个类的),我知道装饰器能简化这个过程,但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了.但是在类中这种方法不管用~

所以问题来了:

类中可不可以使用并定义装饰器,如何使用?如果不能使用可以用什么方法代替?

非常感谢

看着问题有点绕,肯定是能做到的。

我理解题主大概是想要这样的效果:

class Foo(object):    @decorator(123)    def bar(self):        # 输出 123        print('i:', self.i)def decorator(args):    def _deco(func):        def _func(self):            # 注意 self 是作为参数传进来的            self.i = args            func(self)        return _func    return _deco

编橙之家文章,

评论关闭