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.

492<br />

Techniques avancées<br />

QUATRIÈME PARTIE<br />

Dans l’exemple ci-dessus, la classe Telephone encapsule toute une mécanique de<br />

fonctionnement interne dont n’a pas idée l’utilisateur qui se contente d’invoquer<br />

allumer().<br />

Héritage et polymorphisme<br />

Liskov introduit le principe de l’héritage, qui stipule qu’une sous-classe B hérite de<br />

toutes les caractéristiques d’une classe A. La classe B est une classe A, avec des éléments<br />

modifiés et/ou supplémentaires. On parle de spécialisation de A, et on dit que<br />

B est dérivée de la classe de base A.<br />

Héritage<br />

def _recupMessage(self):<br />

print("Vous n'avez pas de message")<br />

print("Achetez les corn flakes Snapk")<br />

# interface<br />

def allumer(self, code_pin):<br />

print(self.modele)<br />

if code_pin == self.__code_pin:<br />

print('Tu ti Tu Ti')<br />

self._chercherReseau()<br />

self._recupMessage()<br />

else:<br />

print('mauvais code pin')<br />

if __name__ == '__main__':<br />

nokai = Telephone()<br />

nokai.allumer('1524')<br />

nokai.allumer('1234')<br />

En reprenant l’exemple précédent, une spécialisation possible de la classe Telephone<br />

est TelephonePhoto.<br />

Spécialisation de Telephone<br />

class TelephonePhoto(Telephone):<br />

def prend_photo(self):<br />

print('clik-clak')<br />

if __name__ == '__main__':<br />

nokai = TelephonePhoto()<br />

nokai.allumer('1234')<br />

nokai.prend_photo()

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

Saved successfully!

Ooh no, something went wrong!