Il est fortement déconseillé d’utiliser l’instruction form module import *, car cela surcharge l’espace de noms global et peut conduire à des conflits. Observons le code suivant :
>>> from math import *
>>> cos(1)
0.54030230586813977
>>> from cmath import *
>>> cos(1)
(0.54030230586813977-0j)
L’on remarque que la fonction cos() du module cmath remplace celle du module math.
La seule exception notable à cette pratique est lorsque l’on utilise Python en mode interactif (par exemple en important tout le module math pour se servir du terminal comme d’une calculatrice).
Lorsqu’une erreur est interceptée, il est vital de spécifier après l’instruction except quelle erreur est attendue. Le cas échéant, toutes les erreurs levées seront interceptées, et cela pourra cacher certains problèmes au programmeur, et rendre le débugage très difficile. Par exemple :
try:
foo = opne('file')
except:
sys.exit('could not open file')
Ce code interceptera toutes les erreurs, même celle indiquant que la fonctionopn opne() n’existe pas, et le programmeur sera dans l’incapacité de comprendre où est le problème. Au contraire, le code suivant lui permettra de rapidement trouver l’erreur :
try:
foo = opne('file')
except IOError:
sys.exit('could not open file')
Comme il a été vu au début, un backslash permet d’écrire une expression ou une instruction sur plusieurs lignes. Toutefois, il peut être plus simple d’utiliser des parenthèses afin d’améliorer la lecture.
Les deux expressions suivantes sont équivalentes :
value = foo.bar()['first'][0]*baz.quux(1, 2)[5:9] \
+ calculate_number(10, 20)*forbulate(500, 360)
value = (foo.bar()['first'][0]*baz.quux(1, 2)[5:9]
+ calculate_number(10, 20)*forbulate(500, 360))
Voici une liste (non exhaustive) des conventions communément adoptées :
Voir aussi
Footnotes
[1] | Ceci pour faciliter la lecture du code et pour qu’il soit adapté à toutes les résolutions |