python:programmes:classes_heritage_exemple
Ceci est une ancienne révision du document !
Exemple d'héritage de classe
#!/usr/bin/env python3 # -*- coding: utf-8 -*- class parent(object): def __init__(self): print("init parent") self.var = 'myvar' def test(self): print('parent') class parent2(object): def __init__(self): print("init parent2") self.var2 = 'myvar2' def test(self): print('parent2') class child(parent, parent2): def __init__(self): print("init child") def test(self): parent.test(self) # Appelle parent.test() sans appeler __init__() parent().test() # Appelle parent.__init__, puis la methode test de la fonction parent (mais initialise pas la variable var) parent2().test() # Appelle parent2.__init__, puis la methode test de la fonction parent2 (mais n'initialise pas la variable var2) super().test() # Appelle test de la fonction parent (sans __init__) super().__init__() # Appelle __init__ de la fonction parent (sans __init__) et initialise la variable var à myvar parent.__init__(self) # Appelle parent.__init__ et initialise la variable var à myvar parent2.__init__(self) # Appelle parent2.__init__ et initialise la variable var2 à myvar2 super(__class__, self).test() # Appelle test de la fonction parent (sans __init__) super(child, self).test() # Appelle test de la fonction parent (sans __init__) print('child') # super() se base sur la première classe rencontrée dans le mro() print(child.mro()) child().test()
python/programmes/classes_heritage_exemple.1490130545.txt.gz · Dernière modification : 2017/03/21 21:09 de root