Table des matières

Pièges à éviter

Quelques pièges à éviter !

Type de données

Librairies

Version de python

Indentations

Symboles

l'affectation ne réalise pas une copie

Lorsqu'on travaille avec des objets listes (ou d'autres objets), l'instruction utilisant un signe “=” (nom=objet) ne réalise pas une copie, mais donne un second nom au même objet. Si on le manipule (le modifie) en utilisant une des appellations, on peut vérifier l'effet, en tapant les instructions suivantes dans l'interpréteur Python :

a=1
b=2
c=[]
c.append(a)
print(c)
d=c
print(d)
c.append(b)
print(d)

Sur des types numériques, l'effet est différent. Essayer ceci :

u=4
v=u
u=2*u
print(v)

Confusion dans les directives d'importation de librairies

Il y a 2 façons d'importer toutes les fonctionnalités définies dans un module “nomdemodule” :

Dans le premier cas, les fonctions seront appelables avec des noms tels que “nomdemodule.func1”, tandis que dans le deuxième mode, la même fonction sera utilisable avec le nom “func1”. La deuxième méthode permet également de n'importer qu'une seule fonction particulière au lieu de toutes celles qui sont dans le module (avec *). Exemple :

Pourquoi 2 façons de faire : l'importation via “from” est simple et permet de s'affranchir de l'écriture du namespace. Cependant, si plusieurs fonctions cohabitent avec des mêmes nom, cela va poser des problèmes car une seule, pas nécessairement “la bonne” sera effective !

référence : http://effbot.org/zone/import-confusion.htm

Suggestion : pour comprendre, essayez par exemple ces directives en mode interactif sur le module math.

FIXME : intégrer ces astuces

Voir aussi :