17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

498<br />

Techniques avancées<br />

QUATRIÈME PARTIE<br />

Voiture, toutes options<br />

class Roue(object):<br />

pass<br />

class Voiture(object):<br />

def __init__(self):<br />

self.roues = [Roue() for i in range(4)]<br />

La classe Roue ici est totalement indépendante de la classe Voiture : si la voiture<br />

cesse de fonctionner, il est possible de démonter les roues pour les vendre.<br />

Les dictionnaires permettent quant à eux de disposer d’une interface de manipulation<br />

plus directe : chaque objet de la collection est étiqueté par la clé de dictionnaire.<br />

Les quatre filles du docteur Mars<br />

class FilleMars(object):<br />

def __init__(self, prenom):<br />

self.prenom = prenom<br />

Héritage multiple<br />

def __str__(self):<br />

return '%s Mars' % self.prenom<br />

class PapaMars:<br />

def __init__(self):<br />

self.filles = {}<br />

self.filles['Gibouléd'] = FilleMars('Gibouléd')<br />

self.filles['Josiane'] = FilleMars('Josiane')<br />

self.filles['Rebecca'] = FilleMars('Rebecca')<br />

self.filles['Sébonlé'] = FilleMars('Sébonlé')<br />

def crie_a_table(self):<br />

import sys<br />

for nom in self.filles:<br />

sys.stdout.write('%s, ' % self.filles[nom])<br />

sys.stdout.write('à table ! Le törglut va refroidir !\n')<br />

docteur = PapaMars()<br />

docteur.crie_a_table()<br />

L’héritage multiple sert à spécifier qu’une classe peut hériter de plusieurs classes.<br />

Lorsque des méthodes entrent en conflit car portant le même nom, la méthode<br />

visible est la première rencontrée par l’interpréteur, qui balaye les classes de gauche à<br />

droite au moment de l’interprétation.

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

Saved successfully!

Ooh no, something went wrong!