python:programmes:classes_heritage_exemple
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| python:programmes:classes_heritage_exemple [2017/06/01 09:54] – root | python:programmes:classes_heritage_exemple [2017/06/01 11:02] (Version actuelle) – root | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| <code python> | <code python> | ||
| - | # | ||
| - | # -*- coding: utf-8 -*- | ||
| - | |||
| class parent1: | class parent1: | ||
| def __init__(self): | def __init__(self): | ||
| print(" | print(" | ||
| self.var1 = ' | self.var1 = ' | ||
| + | |||
| + | def defParent1(self): | ||
| + | print(' | ||
| def test(self): | def test(self): | ||
| Ligne 17: | Ligne 17: | ||
| print(" | print(" | ||
| self.var2 = ' | self.var2 = ' | ||
| + | |||
| + | def defParent2(self): | ||
| + | print(' | ||
| def test(self): | def test(self): | ||
| Ligne 25: | Ligne 28: | ||
| print(" | print(" | ||
| # Auto-initialisation des variables de l' | # Auto-initialisation des variables de l' | ||
| - | for c in __class__.mro()[1: | + | for c in __class__.mro()[1: |
| c.__init__(self) | c.__init__(self) | ||
| + | # | ||
| # On initialise dynamiquement les variables avec le nom des parents | # On initialise dynamiquement les variables avec le nom des parents | ||
| - | for c in child.mro()[1: | + | |
| - | exec(' | + | # |
| def test(self): | def test(self): | ||
| Ligne 36: | Ligne 40: | ||
| print(' | print(' | ||
| parent1.test(self) | parent1.test(self) | ||
| - | | + | |
| print(" | print(" | ||
| parent1().test() | parent1().test() | ||
| - | | + | |
| print(" | print(" | ||
| parent2().test() | parent2().test() | ||
| - | | + | |
| print(' | print(' | ||
| super().test() | super().test() | ||
| - | | + | |
| - | print(' | + | print(' |
| super().__init__() | super().__init__() | ||
| - | | + | |
| + | print(' | ||
| + | super(parent1, | ||
| print(' | print(' | ||
| parent1.__init__(self) | parent1.__init__(self) | ||
| - | | + | |
| print(' | print(' | ||
| parent2.__init__(self) | parent2.__init__(self) | ||
| Ligne 66: | Ligne 73: | ||
| print(" | print(" | ||
| print(child.mro()) | print(child.mro()) | ||
| - | | + | |
| print(' | print(' | ||
| child().test() | child().test() | ||
| Ligne 72: | Ligne 79: | ||
| print(' | print(' | ||
| a = child() | a = child() | ||
| - | | ||
| - | print(' | ||
| - | | ||
| - | print(' | ||
| - | a.parent1.test() | ||
| - | | ||
| - | print(' | ||
| - | print(' | + | |
| - | a.parent2.test() | + | a.defParent1() |
| + | |||
| + | print(' | ||
| + | a.defParent2() | ||
| + | |||
| + | print(' | ||
| + | print(' | ||
| + | |||
| + | # | ||
| + | # | ||
| + | |||
| + | # | ||
| + | # | ||
| + | |||
| + | #print(' | ||
| + | | ||
| </ | </ | ||
python/programmes/classes_heritage_exemple.1496310859.txt.gz · Dernière modification : de root
