2011-06-11 3 views
0

attribut ci-dessous ne semble pas être valable en python 3:Python: méthode de classe définie comme classe

class A: 
callback = A.callback_function 

def callback_function(self): 
    pass 

Vous obtiendrez un type d'erreur disant « A » est pas défini. Est-ce parce que «A» ne peut pas être mentionné en soi? Y at-il de toute façon je peux réaliser ce type de fonctionnalité?

Ce que je suis en train de faire est quelque chose comme ceci: J'ai une classe de base:

class Base: 
callback = Base.ignore 

def ignore(self): 
    pass 

def some_other_function(self): 
    self.callback() 

Dans une sous-classe je voudrais définir une autre fonction de rappel:

class Derived(Base): 
callback = Derived.special_function 

def special_function(self): 
    do_stuff() 

Répondre

9

bien , vous pouvez juste nommer votre fonction callback, et ce sera tout de même, mais si vous insistez vraiment de cette façon:

class A: 
    def callback_function(self): pass 

    callback = callback_function 
Questions connexes