2011-06-11 32 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