★ Bonnes pratiques de la programmation en Python

Tags associés : , , posté le 21 january 2006


Ça faisait longtemps que je voulais écrire un peu là-dessus et puis le temps tout ça... bref je viens de tomber sur deux billets qui m'ont motivé, apparemment je suis pas le seul à vouloir apprendre/faire partager sur Python. Coïncidence pas si pure que ça, la sortie du livre Programmation Python que j'attends depuis quelques semaines et que je compte acheter à Solutions Linux ou gagner :)

Je compte faire des billets de deux natures : les « bonnes pratiques » et l'optimisation, c'est ce que l'on trouve le moins facilement sur internet (ou alors j'ai mal cherché → commentaires) et c'est souvent assez crucial sur les gros projets.

Je préviens, je ne suis pas un pro et je vous invite à vérifier ce que j'écris par vous même, une astuce d'optimisation peut fonctionner dans une situation et pas dans une autre, tout dépend de votre problématique bien sûr.

Concernant l'optimisation, j'utilise le module profile qui est fait pour ça et qui est lancé 5 fois consécutives pour essayer de faire une moyenne assez satisfaisante.

Profile c'est pas vraiment ce qu'il y a de mieux pour faire des tests apparemment donc j'utilise maintenant timeit sur les judicieux conseils de David Allouche.

Le code est le suivant si vous souhaitez tester chez vous :

import timeit

def footime(s, n=1):
    t = timeit.Timer(s, 'import string_optim ; reload(string_optim); gc.enable()')
    time = t.timeit(n)
    print time

footime('string_optim.foo()', n=5)

Avec vos fonctions foo() dans le fichier string_optim.py pour ce cas précis.

Table des matières des billets à ce sujet


Billets contextuels



Bonnes pratiques et astuces Python

Image associée au billet

Ça faisait un moment que je n'avais pas parlé des bonnes pratiques Python mais l'approche de Pycon fr (où je présenterai Django : le pourquoi et le comment le 18 mai), l'événement Python incontournable avec un programme des ...

Benchmarks map, filter vs. list-comprehensions

Image associée au billet

Je viens de tomber sur les snyppets de Seb Sauvage (site que j'apprécie beaucoup par ailleurs) et il y a une phrase qui m'a interpellé sur le paragraphe consacré à zip, map, filter et aux list-comprehensions : Except that ...

Python : lisibilité vs simplicité

Image associée au billet

Le programmeur est fainéant. C'est ainsi. S'il ne l'était pas, il n'essayerait pas de s'aider d'un ordinateur. Du coup il évite dans la mesure du possible de s'encombrer de variables trop longues, ou ...




Commentaires

#1 szdavid , le 21 January 2006 à 20h  :

je vais suivre de très près tes prochains posts ; je suis aussi en train de me mettre au python :)

#2 kNo' , le 22 January 2006 à 14h  :

C'est marrant, j'allais suggérer que les billets de cette catégorie apparaissent sur Planet Python-fr, mais je vois que quelqu'un y avait déjà pensé.

Voilà encore une fois du très très bon boulot, bravo et merci.

#3 gml , le 22 January 2006 à 15h  :

D'ailleurs kNo' si tu vois d'autres blogs qui pourraient apparaitre sur le planet n'hésite pas à me le signaler :)

Ajouter un commentaire

© 2004-2008 David Larlet - Licence (presque) libre - Site enfin propulsé par Django et hébergé par Typhon.