Voici un exemplepropriété Python et la méthode question prioritaire: pourquoi la propriété sous-classe appelle encore la méthode de classe de base
class A(object):
def f1(self):
return []
test1 = property(f1)
class B(A):
def f1(self):
return [1, 2]
if __name__ == "__main__":
b = B()
print b.test1
Je pense que la sortie soit [1, 2], mais il imprime [] à la place.
C'est contraire à mes attentes.
Ai-je commis une erreur dans le code? Sinon, je suppose que cela fonctionne de cette façon parce que quand la propriété test1 est créée, elle est liée à la fonction f1 de la classe de base A. Qu'est-ce qu'une implémentation alternative possible pour réaliser ce que je veux?
BTW, pourquoi CW pour une question tout à fait technique susceptible de réponses nettes et aussi techniques ?! J'ai répondu avant de repérer l'étiquette CW - cependant, je déteste et évite généralement les questions si mal étiquetés (CW quand ils ne devraient pas être évidemment, ou vice versa). –