2011-06-11 33 views
0

下似乎不是在Python 3有效:的Python:设置类方法,如类attribut

class A: 
callback = A.callback_function 

def callback_function(self): 
    pass 

你会得到一个错误说“A”型没有定义。是不是因为'A'不能被自我引用?无论如何,我可以实现这种类型的功能?

我想要做的是这样的:我有一个基类:

class Base: 
callback = Base.ignore 

def ignore(self): 
    pass 

def some_other_function(self): 
    self.callback() 

在子类中,我想设置另一个回调函数:

class Derived(Base): 
callback = Derived.special_function 

def special_function(self): 
    do_stuff() 

回答

9

好,你只需要命名你的功能callback,它会一样,但如果你真的坚持这样:

class A: 
    def callback_function(self): pass 

    callback = callback_function