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.

184<br />

Éléments du langage<br />

DEUXIÈME PARTIE<br />

À SAVOIR super() et les définitions de classe<br />

Pour pouvoir faire fonctionner super() avec vos définitions de classes, il faut toujours dériver les classes<br />

de base du type de base object, ou en faire des types :<br />

>>>> def title(self):<br />

... return "Moi c'est la classe\n"<br />

...<br />

>> MyClass = type('MyClass', (), {'title': title})<br />

>>> class MyClass2(MyClass):<br />

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

... return "Moi aussi\n"<br />

...<br />

>>> class MyClass3(MyClass2):<br />

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

... title1 = super(MyClass2, self).title()<br />

... title2 = super(MyClass3, self).title()<br />

... mon_title = "Jamais deux sans trois !"<br />

... return title1 + title2 + mon_title<br />

...<br />

>>> test = MyClass3()<br />

>>> print(test.title())<br />

Moi c'est la classe<br />

Moi aussi<br />

Jamais deux sans trois ! :<br />

type : type(objet) -> type de l’objet<br />

Renvoie le type d’un objet. Le test type(objet) is type est équivalent à<br />

isinstance(type, objet).<br />

Essais avec type<br />

>>> type('texte')<br />

<br />

>>> type(1)<br />

<br />

>>> type([])<br />

<br />

type : type(nom, bases, dict) -> nouveau type<br />

Permet de définir un nouveau type ou une nouvelle classe de nom name. bases est un<br />

tuple représentant l’ensemble des types dont le nouveau type doit hériter et dict est<br />

un dictionnaire qui contient l’ensemble des méthodes et attributs définis pour le<br />

type. Cette notation est à éviter au profit d’une définition explicite du nouveau type.

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

Saved successfully!

Ooh no, something went wrong!