background preloader

Bonnes pratiques

Facebook Twitter

A "Best of the Best Practices" (BOBP) guide to developing in Python. The Best of the Best Practices (BOBP) Guide for Python A "Best of the Best Practices" (BOBP) guide to developing in Python.

A "Best of the Best Practices" (BOBP) guide to developing in Python.

In General Values "Build tools for others that you want to be built for you. " - Kenneth Reitz"Simplicity is alway better than functionality. " - Pieter Hintjens"Fit the 90% use-case. Ignore the nay sayers. " - Kenneth Reitz"Beautiful is better than ugly. " - PEP 20Build for open source (even for closed source projects).

General Development Guidelines "Explicit is better than implicit" - PEP 20"Readability counts. " - PEP 20"Anybody can fix anything. " - Khan Academy Development DocsFix each broken window (bad design, wrong decision, or poor code) as soon as it is discovered. " In Particular Style Follow PEP 8, when sensible. Gestion des erreurs en Python. Plus on code, plus on oublie ce que c’était quand on a débuté.

Gestion des erreurs en Python

Même moi, et pourtant je fais un gros effort pour essayer de me replonger dans cet état d’esprit. Dernièrement j’ai eu plusieurs interactions qui m’ont mis un petit taquet derrière la tête : - “Mec, les exceptions, y a plein de personnes qui pigent pas.”– “Nannnn, mais quand même, les exceptions…”– “Si, les exceptions.”– “Nan, vraiment ?” – “Oui, vraiment.” Donc, back to black, et petit tour de la gestion d’erreur en Python. Et de la musique. La notion d’exception Une exception est un mécanisme d’interruption du programme utilisé pour signaler que quelque chose d’anormal est en train de se produire.

Un gros guide bien gras sur les tests unitaires en Python, partie 4. Python est un langage très pro, et il y a beaucoup, beaucoup d’outils pour faire des tests.

Un gros guide bien gras sur les tests unitaires en Python, partie 4

Après avoir vu pytest, un outil typiquement pythonique sont les doctests, des tests unitaires intégrés dans les docstrings. Pour rappel, les docstrings, ce sont ces chaînes de caractères qu’on retrouve au début des modules, sous la signatures des fonctions ou dans la définition des classes. Elles servent à la documentation de ceux-ci, ainsi on peut la lire dans le code, et dans les vraies docs car les outils standards savent les extraire. Ça ressemble à ça : Et bien ces docstrings, on peut mettre des tests unitaires dedans formatés comme des sessions de shell Python. Musique ? Musique. Hello doctests. Bien nommer ses variables en Python. There are only two hard things in Computer Science: cache invalidation and naming things.

Bien nommer ses variables en Python

Phil Karlton Utiliser des bons noms est le geste de documentation le plus important d’un code. Je ne parle pas de bien formater le nom des variables. Pour ça, il y a le PEP8 et ce qu’il recommande tient en 3 lignes : Le nom des classes en CamelCaseLes (pseudo) constantes en UPPER_CASELe reste en snake_case C’est tout. Non, je parle de choisir un nom adapté et descriptif. Le post est long, et vous savez que quand le post est long, je vous mets une musique d’attente. Explicit is better than implicit En Python, il n’y a pas de déclaration de type. Prenez cet exemple : Conventions de nom en Python. Vous voulez savoir quels sont les conventions pour nommer des fonctions, des variables, des classes en Python?

Conventions de nom en Python

Je vous propose la lecture de: Style Guide for Python Code qui reprend les naming conventions à utiliser. Transforming Code into Beautiful, Idiomatic Python. Anti-Patterns in Python Programming - Constantine Lignos. This page is a collection of the most unfortunate but occasionally subtle issues I've seen in code written by students new to writing Python.

Anti-Patterns in Python Programming - Constantine Lignos

It's written to help students get past the phase of writing ugly Python code and understand some of the most common idioms. The simplifications employed (for example, ignoring generators and the power of itertools when talking about iteration) reflect its intended audience. There are always reasons to use some of these anti-patterns, which I've tried to give those where possible, but in general using these anti-patterns makes for less readable, more buggy, and less Pythonic code.

Quelques astuces pour accélérer un programme. Optimisation du code L'exemple suivant trie des éléments.

Quelques astuces pour accélérer un programme

Mais comme ceux-ci sont soit des chiffres sous formes de lettres, soit des entiers, il faut d'abord tous les convertir en entiers. Il est plus simple de définir que ces nombres seront des entiers une bonne fois pour toutes et ne jamais faire de conversions. Il faut toujours avoir des listes d'objets de même type. Dans le cas contraire, c'est l'assurance de faire des erreurs. De plus, dans cette fonction, la fonction gagnant est appelée deux fois avec les mêmes paramètres. Optimisation algorithmique Les deux fonctions suivantes calcule la fréquence des lettres dans un texte : Quelle est la plus rapide ? Etrange ? Comme l'alphabet a pour taille 262, la seconde version est plus efficace. Profiler Le programme est évidemment plus lent mais il enregistre les temps d'exécution de chaque fonction : On s'intéresse d'abord aux fonctions qui sont appelées un grand nombre de fois et dont le temps cumulé est important.

Par. Bonnes pratiques et astuces Python. Ç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 plus alléchants, m'a bien motivé pour effectuer la traduction de l'une des meilleures présentation par David Goodger que je connaisse qui remet les bonnes pratiques Python à plat, ce qui est toujours bon avant d'aller plus loin.

Bonnes pratiques et astuces Python

La lisibilité est importante Les programmes doivent être écrits pour être lus par des gens et accidentellement exécutés par les machines.-- Abelson & Sussman, Structure and Interpretation of Computer Programs Essayez de rendre vos programmes faciles à lire et évidents. 30 Python Language Features and Tricks You May Not Know About. 1 Introduction Since I started learning Python, I decided to maintain an often visited list of "tricks".

30 Python Language Features and Tricks You May Not Know About

Any time I saw a piece of code (in an example, on Stack Overflow, in open source software, etc.) that made me think "Cool! I didn't know you could do that! " I experimented with it until I understood it and then added it to the list. This post is part of that list, after some cleaning up. Each trick or language feature is demonstrated only through examples, with no explanation. The list is very roughly ordered by difficulty, with the easier and more commonly known language features and tricks appearing first. 5 choses à apprendre en priorité en Python. Quand on apprend un nouveau langage de programmation, on apprend d’abord les bases.

5 choses à apprendre en priorité en Python

Et pour la plupart des langages, elles sont communes : déclarer une variable, faire des conditions et des boucles, faire des fonctions, importer un code d’un autre fichier, etc. Ce qui va différencier le moment où vous savez programmer dans CE langage, ce sont des notions qui lui sont spécifiques et que vous commencez à maitriser. Voici 5 notions spécifiques au langage qu’il faut apprendre en priorité si vous voulez pouvoir dire “je code en Python” : Pip.