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 : 2017/06/01 09:54 de root