2010-02-17 10 views
3

Nous avons commencé à apprendre sur l'héritage de classes et d'attributs recherche en python. J'ai une question sur le code suivant:héritage en Python

class a : n = 1 
class b : n = 2 
class c : n = 3 
class d (a,b) : pass 
class e (d,c) : pass 

Je sais que E.N serait égal à 1 en raison de la nature de la procédure de recherche d'attribut (profondeur première recherche). Cependant, comment aurais-je accès, disons, à la classe c n de la classe e? J'ai essayé e.c.n, mais cela me donne une erreur. Quelqu'un peut-il me dire ce que je fais mal? Merci d'avance!

Répondre

1
>>> e.__bases__[1].n 
3 
+0

Merci, a travaillé comme un charme! – Mel

1

Vous ne pouvez pas y arriver d'ici. Les attributs de classe sont remplacés. Utilisez directement la référence de classe (c.n).