相关疑难解决方法(0)

5409
推荐指数
22
解决办法
75万
查看次数

Python装饰器:如何在子类中使用父类装饰器

注意:

在另一个问题上接受的答案显示了如何使用父装饰器.

此问题上接受的答案显示将装饰器移动到模块范围.


编辑:使用前面的例子是一个坏主意.希望这更清楚:

class A:
    def deco( func ):
        print repr(func)
        def wrapper( self, *args ):
            val = func( *args )
            self.do_something()
            return val
        return wrapper

    def do_something( self ):
        # Do something
        print 'A: Doing something generic for decoration'

    @deco
    def do_some_A_thing ( self ):
        # Do something 
        print 'A: Doing something generic'

class B ( A ):

    @deco
    def do_some_B_thing( self ):
        # Do something
        print "B: Doing something specific"

a = A()
b = B() …
Run Code Online (Sandbox Code Playgroud)

python decorator

7
推荐指数
1
解决办法
5489
查看次数

标签 统计

python ×2

decorator ×1

metaclass ×1

oop ×1

python-datamodel ×1