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/03/21 22:12] – root | python:programmes:classes_heritage_exemple [2017/06/01 11:02] (Version actuelle) – root | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| <code python> | <code python> | ||
| - | # | + | class parent1: |
| - | # -*- coding: utf-8 -*- | + | |
| - | + | ||
| - | class parent(object): | + | |
| def __init__(self): | def __init__(self): | ||
| - | print(" | + | print(" |
| - | self.var = 'myvar' | + | self.var1 = 'myvar1' |
| + | |||
| + | def defParent1(self): | ||
| + | print(' | ||
| def test(self): | def test(self): | ||
| - | print(' | + | print(' |
| - | class parent2(object): | + | class parent2: |
| def __init__(self): | def __init__(self): | ||
| print(" | print(" | ||
| self.var2 = ' | self.var2 = ' | ||
| + | |||
| + | def defParent2(self): | ||
| + | print(' | ||
| def test(self): | def test(self): | ||
| print(' | print(' | ||
| - | class child(parent, parent2): | + | class child(parent1, parent2): |
| def __init__(self): | def __init__(self): | ||
| 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 les variables avec le nom des parents | + | |
| - | for c in child.mro()[1: | + | |
| - | exec(' | + | |
| + | # | ||
| def test(self): | def test(self): | ||
| - | parent.test(self) | ||
| - | parent().test() | ||
| - | parent2().test() | ||
| - | super().test() | ||
| - | super().__init__() | ||
| - | parent.__init__(self) | ||
| - | parent2.__init__(self) | ||
| - | super(__class__, | ||
| - | super(child, | ||
| print(' | print(' | ||
| + | |||
| + | print(' | ||
| + | parent1.test(self) | ||
| + | |||
| + | print(" | ||
| + | parent1().test() | ||
| + | |||
| + | print(" | ||
| + | parent2().test() | ||
| + | |||
| + | print(' | ||
| + | super().test() | ||
| + | |||
| + | print(' | ||
| + | super().__init__() | ||
| + | |||
| + | print(' | ||
| + | super(parent1, | ||
| + | |||
| + | print(' | ||
| + | parent1.__init__(self) | ||
| + | |||
| + | print(' | ||
| + | parent2.__init__(self) | ||
| + | |||
| + | print(' | ||
| + | super(__class__, | ||
| + | |||
| + | print(' | ||
| + | super(child, | ||
| if __name__ == ' | if __name__ == ' | ||
| # super() se base sur la première classe rencontrée dans le mro() | # super() se base sur la première classe rencontrée dans le mro() | ||
| + | print(" | ||
| print(child.mro()) | print(child.mro()) | ||
| + | |||
| + | print(' | ||
| child().test() | child().test() | ||
| - | a=child() | + | |
| - | print(' | + | a = child() |
| - | a.parent.test() | + | |
| - | print(' | + | print(' |
| - | a.parent2.test() | + | a.defParent1() |
| + | |||
| + | print(' | ||
| + | a.defParent2() | ||
| + | |||
| + | print(' | ||
| + | | ||
| + | |||
| + | #print('\n* a.parent1.var1 : ' + a.parent1.var1) | ||
| + | | ||
| + | |||
| + | # | ||
| + | # | ||
| + | |||
| + | # | ||
| + | | ||
| </ | </ | ||
python/programmes/classes_heritage_exemple.1490134333.txt.gz · Dernière modification : de root
