Posez votre question Signaler

Classes python [Résolu]

dotten 17Messages postés 31 mars 2008Date d'inscription - Dernière réponse le 24 juin 2011 à 16:24
Bonjour,
Sous python peut on avoir une classe B qui soit dans une autre classe A?
si oui, comment peut on utiliser les variables statiques de la classe A dans B et inversement?
Merci.
Lire la suite 

Classes python »

4 réponses
Réponse
+0
moins plus
Sous python peut on avoir une classe B qui soit dans une autre classe A?

oui.
Par composition ou héritage, comme tu veux.


si oui, comment peut on utiliser les variables statiques de la classe A dans B et inversement?

Généralement, il vaut mieux éviter les variables de classe ("statiques"). Mais bon si vraiment tu le veux:

Exemple: Une classe B accède à une variable de classe par composition:

class A:
    varClasseA = 5   # C'est une variable de classe.

class B:
    def __init__(self):
        pass
    def coucou(self):
        print A.varClasseA

b = B()
b.coucou()


ce qui affiche: 5


Et par héritage:

class A:
    varClasseA = 5   # C'est une variable de classe.

class B(A):
    def __init__(self):
        pass
    def coucou(self):
        print self.__class__.varClasseA

b = B()
b.coucou()
dotten - 3 avril 2008 à 13:45
Merci, ça m'a beaucoup aidé.
grom971 - 24 juin 2011 à 16:24
Enfin un exemple clair, merci !
Ajouter un commentaire
Réponse
+0
moins plus
De préférence, définir les variables comme vairables d'instance et non de classe:

class A:
    def __init__(self):
        self.varInstance = 7  # C'est une variable d'instance.
Ajouter un commentaire
Ce document intitulé « classes python » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook