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.

284<br />

La bibliothèque standard<br />

TROISIÈME PARTIE<br />

Ainsi, l’initialisation automatique de chaque clé simplifie la conception d’un compteur<br />

d’occurrence des lettres dans un texte.<br />

La fonction namedtuple<br />

namedtuple est une fonction qui génère des tuples nommés dont les fonctionnalités<br />

sont étendues. namedtuple prend en paramètre un nom de type et une chaîne qui<br />

contient des noms d’attributs séparés par des espaces ou des virgules. Ce nouveau<br />

type est comparable aux structures nommées du C++.<br />

Création d’un tuple User<br />

>>> from collections import namedtuple<br />

>>> User = namedtuple('User', 'first_name last_name login password')<br />

>>> joe = User('joe', 'biden', 'jbiden', 'obama2009')<br />

>>> joe<br />

User(first_name='joe', last_name='biden',<br />

login='jbiden', password='obama2009')<br />

>>> joe.password<br />

'obama2009'<br />

L’intérêt des tuples nommés est de fonctionner exactement comme des tuples classiques<br />

tout en étant plus faciles à manipuler grâce aux libellés attribués à chaque position<br />

de séquence. Si nous reprenons notre exemple, pour récupérer la valeur du mot<br />

de passe, joe.password est beaucoup plus explicite que joe[-1].<br />

La méthode de classe _make(iterable) génère également une instance de tuple<br />

nommé et lui assigne les valeurs fournies dans l’itérable.<br />

Utilisation de _make<br />

>>> values = ['tarek', 'ziadé', 'tziade', 'poupoum']<br />

>>> User._make(values)<br />

User(first_name='tarek', last_name='ziad\xc3\xa9',<br />

login='tziade', password='poupoum')<br />

Les Abstract Base Classes<br />

collections propose pas moins de seize Abstract Base Classes ou ABC. Elles se<br />

basent sur l’implémentation des méthodes spéciales existantes en Python comme<br />

__len__ ou __iter__, et permet d’associer un nom de classe abstraite à un certain<br />

nombre de concepts déjà existants.<br />

La liste des ABC est accessible à l’adresse suivante :<br />

http://docs.python.org/library/collections.html#abcs-abstract-base-classes.

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

Saved successfully!

Ooh no, something went wrong!