17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

114<br />

Éléments du langage<br />

DEUXIÈME PARTIE<br />

Python permet de définir des classes dérivées très simplement :<br />

Classe dérivée<br />

>>> class Mehari(Car):<br />

... pass<br />

...<br />

Au moment de l’instanciation de la classe Mehari, l’interpréteur mémorise le nom de<br />

la classe parente afin de l’utiliser lorsque des attributs de données ou des méthodes<br />

sont utilisés : si l’attribut en question n’est pas trouvé dans la classe, l’interpréteur le<br />

recherche dans la classe parente. Si l’attribut n’est pas trouvé dans la classe parente,<br />

l’interpréteur remonte l’arbre de dérivation à la recherche d’une méthode portant la<br />

même signature avant de provoquer une exception AttributeError.<br />

Héritage des attributs<br />

>>> class Car:<br />

... type = 'Voiture'<br />

... def print_type(self):<br />

... print(self.type)<br />

...<br />

>>> class Mehari(Car):<br />

... pass<br />

...<br />

>>> class MehariTurbo(Mehari):<br />

... pass<br />

...<br />

>>> car = MehariTurbo()<br />

>>> car.print_type()<br />

Voiture<br />

Héritage multiple<br />

Python supporte l’héritage multiple en laissant la possibilité de lister plusieurs classes<br />

parentes dans la définition.<br />

Héritage multiple<br />

>>> class Television:<br />

... brand = ''<br />

... def print_brand(self):<br />

... print(self.brand)<br />

...<br />

>>> class DVDPlayer:<br />

... def play_dvd(self):<br />

... pass<br />

...

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!