我正在尝试使用元类来实现以下功能:
class foo( object ):
def __init__( self ):
self.val = 'foo'
def bar( self ):
print 'hello world'
print self.val
f = foo()
f.bar() #prints 'hello world' followed by foo
def newbar( self ):
super( **?**, self).bar()
print 'another world!'
fooNew = type('fooNew', (foo,), {'bar':newbar})
n = fooNew()
n.bar() # should print everything in f.bar() followed by 'another world!'
我知道我可以使用猴子补丁来实现我自己的函数 newbar。但是有一个细微的区别,我希望新的 bar 函数首先运行基类 bar 函数,然后才运行任何附加功能。
我怎样才能做到这一点?或者我怎么能做得更好?