Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

article.md 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. title: ★ Bonnes pratiques de la programmation en Python
  2. slug: bonnes-pratiques-de-la-programmation-en-python
  3. date: 2006-01-21 20:09:48
  4. type: post
  5. vignette: images/logos/bonnes_pratiques_python.png
  6. contextual_title1: Bonnes pratiques et astuces Python
  7. contextual_url1: 20080511-bonnes-pratiques-et-astuces-python
  8. contextual_title2: Benchmarks map, filter vs. list-comprehensions
  9. contextual_url2: 20061025-benchmarks-map-filter-vs-list-comprehensions
  10. contextual_title3: Python : lisibilité vs simplicité
  11. contextual_url3: 20060425-python-et-underscore
  12. <p>Ça faisait longtemps que je voulais écrire un peu là-dessus et puis le temps tout ça... bref je viens de tomber sur <a href="http://jehaisleprintemps.net/detail.php?id=1303&amp;lang=fr">deux</a> <a href="http://blog.virgule.info/2006/01/21/128-resolutions-2006">billets</a> 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 <a href="http://www.amazon.fr/exec/obidos/redirect?link_code=as2&amp;path=ASIN/2212116772&amp;tag=programmation-21&amp;camp=1642&amp;creative=6746">Programmation Python</a> que j'attends depuis quelques semaines et que je compte acheter à Solutions Linux <a href="http://programmation-python.org/sections/news/sortie-du-livre-et">ou gagner</a> :)</p>
  13. <p>Je compte faire des billets de deux natures&nbsp;: les «&nbsp;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.</p>
  14. <p>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.</p>
  15. <p><del>Concernant l'optimisation, j'utilise le module <a href="http://www.python.org/doc/current/lib/module-profile.html">profile</a> qui est fait pour ça et qui est lancé 5 fois consécutives pour essayer de faire une moyenne assez satisfaisante.</del></p>
  16. <p>Profile c'est pas vraiment ce qu'il y a de mieux pour faire des tests apparemment donc j'utilise maintenant <strong>timeit</strong> sur les judicieux conseils de <a href="http://ddaa.net/blog/">David Allouche</a>.</p>
  17. <p>Le code est le suivant si vous souhaitez tester chez vous&nbsp;:</p>
  18. <pre>import timeit
  19. def footime(s, n=1):
  20. t = timeit.Timer(s, 'import string_optim ; reload(string_optim); gc.enable()')
  21. time = t.timeit(n)
  22. print time
  23. footime('string_optim.foo()', n=5)</pre>
  24. <p>Avec vos fonctions <strong>foo()</strong> dans le fichier <strong>string_optim.py</strong> pour ce cas précis.</p>
  25. <h3>Table des matières des billets à ce sujet</h3>
  26. <ul>
  27. <li><a href="https://larlet.fr/david/biologeek/archives/20060121-optimisation-des-chaines-de-caracteres-en-python/">Optimisation des chaînes de caractères en Python</a></li>
  28. <li><a href="https://larlet.fr/david/biologeek/archives/20060121-formatage-des-chaines-de-caracteres-en-python/">Formatage des chaînes de caractères en Python</a></li>
  29. <li><a href="https://larlet.fr/david/biologeek/archives/20060127-optimisation-des-chaines-de-caracteres-en-python-le-retour/">Optimisation des chaînes de caractères en Python&nbsp;: le retour</a></li>
  30. <li><a href="https://larlet.fr/david/biologeek/archives/20060218-un-template-python-pour-parser-des-arguments/">Un template python pour parser des arguments</a></li>
  31. <li><a href="https://larlet.fr/david/biologeek/archives/20061025-benchmarks-map-filter-vs-list-comprehensions/">Benchmarks map, filter vs. list-comprehensions</a></li>
  32. </ul>