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.

Les types à valeur unique<br />

Syntaxe du langage<br />

CHAPITRE 4<br />

Les types à valeur unique permettent de définir des objets qui jouent un rôle spécifique<br />

dans le langage. Python en fournit trois par défaut :<br />

None ;<br />

NotImplemented ;<br />

None<br />

Ellipsis.<br />

None permet de déclarer une absence de valeur et est en quelque sorte comparable au<br />

nil de Pascal ou au NULL de C. Son usage est très fréquent. Il est commun par<br />

exemple pour certaines variables associées à certaines structures de données (les<br />

classes pour ne pas les nommer) de les initialiser à None. La valeur booléenne de None<br />

est à False et ce type peut donc être employé dans des expressions de test.<br />

NotImplemented<br />

Dans un algorithme complexe, lorsque certaines combinaisons de paramètres ne permettent<br />

pas de calculer un résultat, NotImplemented peut être renvoyé. Ce type est<br />

aussi utilisé lorsque le code n’est pas terminé.<br />

PROGRAMMATION Utilisation de NotImplementedError<br />

Il est plus fréquent d’utiliser NotImplementedError qui permet de lever une exception dans ce<br />

genre de cas, afin de ne pas laisser le code appelant continuer (voir le prochain chapitre sur la gestion<br />

d’exceptions).<br />

Dans l’exemple ci-dessous, la méthode get_data déclenche une erreur<br />

NotImplementedError pour signifier qu’elle doit être surchargée.<br />

Utilisation de NotImplementedError<br />

>>> class AbstractData(object):<br />

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

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

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

... raise NotImplementedError('A surcharger')<br />

...<br />

>>> d = AbstractData()<br />

>>> d.print_data()<br />

Traceback (most recent call last):<br />

File "", line 1, in <br />

File "", line 3, in print_data<br />

63

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

Saved successfully!

Ooh no, something went wrong!