Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1478 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Affichage noms classes heritees

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Affichage noms classes heritees

n°1419846
fullmoon1
Posté le 04-08-2006 à 16:30:57  profilanswer
 

Salut,
 
   Je ne suis plus trop nouvelle e python, mais des fois ca arrive de ne rien trouver de ce qu'il me faut.
 
   J'ai besoin d'afficher l'arbre d'ehritag d'une classe et j'ai trouve une solution trop ...pas elegante apres plusieurs essis de manipulationde l'attribut __bases__ ....ce que j'avais compris etait que celui la donne la liste ( un 'tuple ' plutot) des classes heritees, quand on l'appelle par nomClasse.__bases__ ou nomClasse.__class__.__bases__
 
   Mais pour moi ca renvoie toujours une liste vide  :( ...
 
   Alors je l'ai fait a la primitive: dans chaque classe j'ai mis  en dehors des methodes un :
     
     parent= ParentClassName.parent+ ' --> ChildClassName'
 
   Ca marche biensur quand on affiche a la fin, mais il faut faire attention a  comment on affiche le string de sortie car il y a plusieurs branches et si on veut comprendre exactement l'arborescence...il faut un peu d'esthetique...
 
     Est-ce que qqn sait ou a fait un truc pareil..mais plus genial que moi?????   ca serait tres uitile SVP.
 
    Merci bien et...programmez a fond pour un monde meilleur   :hello:

mood
Publicité
Posté le 04-08-2006 à 16:30:57  profilanswer
 

n°1420498
masklinn
í dag viðrar vel til loftárása
Posté le 05-08-2006 à 17:58:56  profilanswer
 

Code :
  1. def superTree(cls, level=0):
  2.     print "%s%s"%("    "*level, cls.__name__)
  3.     for c in cls.__bases__:
  4.         superTree(c, level+1)


Demo:

Code :
  1. >>> class Foo(object): pass
  2.  
  3. >>> class Bar(list): pass
  4.  
  5. >>> class Baz(object): pass
  6.  
  7. >>> class Buzz(Foo, Bar, Baz): pass
  8.  
  9. >>> class Foobar(Buzz, dict): pass
  10.  
  11. >>> class Bizz(object): pass
  12.  
  13. >>> class Foobar(Buzz, Bizz): pass
  14.  
  15. >>> superTree(Foobar)
  16. Foobar
  17.    Buzz
  18.        Foo
  19.            object
  20.        Bar
  21.            list
  22.                object
  23.        Baz
  24.            object
  25.    Bizz
  26.        object


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1421394
fullmoon1
Posté le 07-08-2006 à 12:27:54  profilanswer
 

Merci bien :d


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Affichage noms classes heritees

 

Sujets relatifs
Affichage i-frames sous MozillaProbleme d'affichage d'une liste déroulante lors dun apel d1 fonction
[JDBC~MySQL] Affichage des caractères spéciauxprobleme affichage sur http://nasjsk.free.fr
[resolu] problème d'affichage d'images sous IE[Flash/AS] problème d'affichage avec Firefox
Affichage étrange de données hexa contenues dans un buffer [Résolu]affichage dynamique d'un calcul dans une balise (newbie inside)
Modifier l'affichage du Statut punbbPb de Classes non compilées avec eclipse
Plus de sujets relatifs à : Affichage noms classes heritees


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR