Classes python
Résolu
dotten
Messages postés
17
Statut
Membre
-
grom971 -
grom971 -
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.
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.
Configuration: Windows XP Firefox 2.0.0.12
2 réponses
-
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() -
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.