Outils pour utilisateurs

Outils du site


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