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.

Code patterns<br />

Bonnes pratiques et optimisation du code<br />

CHAPITRE 13<br />

La distinction n’étant pas toujours faite dans la littérature informatique, il est important<br />

de préciser ici que les code patterns sont à différencier des design patterns : ils<br />

s’apparentent plus à des petites séquences de code souvent utilisées pour répondre à<br />

des besoins communs comme la concaténation de chaînes, le tri d’éléments, ou les<br />

bonnes habitudes à prendre lorsque l’on manipule certains objets.<br />

Les design patterns, présentés au prochain chapitre, concernent des éléments de code de<br />

plus haut niveau comme des classes ou des groupes de classes, et répondent à un besoin<br />

plus spécifique de conception, comme les générateurs d’objets, les médiateurs, etc.<br />

Voici une liste non exhaustive de code patterns éprouvés, pouvant être réutilisés pour<br />

les meilleures performances possibles.<br />

Quel type de conteneur choisir ?<br />

Lorsque des éléments doivent être regroupés dans un conteneur, plusieurs choix sont<br />

possibles :<br />

Le type list offre de nombreuses fonctionnalités pour la gestion d’éléments hétérogènes<br />

ordonnés.<br />

Le type set offre un conteneur performant à condition que les éléments soient<br />

uniques.<br />

Le type tuple permet de créer des séquences non modifiables, et prend moins de<br />

place en mémoire.<br />

Le dictionnaire est à préférer aux séquences lorsque l’ordre des éléments regroupés<br />

n’a pas d’importance. La clé peut contenir un identifiant unique, susceptible<br />

d’être utilisé dans des recherches sur les éléments.<br />

Le type array est plus rapide pour des séquences d’éléments simples homogènes.<br />

À SAVOIR Remplacer le type Array<br />

Il existe des bibliothèques tierces spécialisées qui remplacent avantageusement Array (présentées en<br />

annexe B).<br />

Trier des valeurs<br />

Le tri en Python s’effectue en utilisant des objets de type list, qui disposent d’une<br />

méthode sort(). Cette méthode trie les valeurs de la liste en les comparant et<br />

effectue son travail inplace, c’est-à-dire en appliquant les modifications directement à<br />

l’objet sans en renvoyer un nouveau. Ce tri est de type quicksort et implémenté en C,<br />

donc très rapide.<br />

441

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

Saved successfully!

Ooh no, something went wrong!