code:classe de base restent les mêmes si la base pointe vers un autre
class Base(object):
def __init__(self):
print "Base created"
class ChildB(Base):
def __init__(self):
super(ChildB, self).__init__()
Base = ChildB
Base()
Quand je fais Base = ChildB
, Base, dans le cadre global, les points à ChildB
qui prolonge la Base
précédente. Puisque python est un langage dynamiquement typé, je suppose que la relation hiérarchique va changer. Et MRO cette référence super sera ChildB > Base(ChildB) > ChildB > Base(ChildB) ....
Mais le résultat dit la vérité que ChildB étend toujours la base d'origine. Pourquoi ???
On ne sait pas vraiment ce que vous essayez de faire? –
Vous pouvez trouver cet article utile: [Faits et mythes sur les noms et les valeurs de Python] (http://nedbatchelder.com/text/names.html), qui a été écrit par SO vétéran Ned Batchelder. Voir aussi [D'autres langages ont des "variables", Python a des "noms"] (http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables) pour un bref résumé avec de beaux diagrammes. –
@ xiº C'est ma question sur la réponse de SC à [Comprendre Python super() avec les méthodes __init __() ] (http://stackoverflow.com/questions/576169/understanding-python-super-with-init-methods) – MMMMMCCLXXVII