J'ai décidé d'apprendre Python 3. Pour ceux qui l'ont déjà fait, qu'est-ce qui vous a été le plus utile en cours de route et que vous auriez aimé connaître plus tôt ?
Réponses
Trop de publicités?J'ai appris Python avant la sortie de la version 1.5.2, donc les choses qui étaient essentielles pour moi à l'époque ne le sont peut-être plus aujourd'hui.
Ceci étant dit, une chose cruciale que j'ai mis un peu de temps à réaliser, mais que je considère maintenant comme cruciale : beaucoup de fonctionnalités que d'autres langages rendraient intrinsèques sont en fait rendues disponibles par la bibliothèque standard et les modules intégrés.
Le langage lui-même est petit et simple, mais tant que vous n'êtes pas familiarisé avec les modules intégrés et les "parties principales" de la bibliothèque standard (par exemple, aujourd'hui, sys
, itertools
, collections
, copy
...), vous réinventerez sans cesse la roue. Par conséquent, plus vous consacrerez de temps à vous familiariser avec ces éléments, plus vous progresserez en douceur. Chaque fois que vous avez une tâche à effectuer, qui ne semble pas être directement prise en charge par le langage, demandez-vous d'abord : quels modules intégrés ou modules dans la bibliothèque standard rendront la tâche beaucoup plus simple, ou même la feront entièrement à ma place ? Parfois, il n'y en aura pas, mais le plus souvent, vous trouverez d'excellentes solutions en procédant de la sorte.
Deux choses qui font mal au cerveau. L'une d'entre elles ne s'applique pas à Python 3.
a = 095
Ne fonctionne pas. Pourquoi ? Le zéro initial est un littéral octal. Le 9 n'est pas valide dans un littéral octal.
def foo( bar=[] ):
bar.append( 1 )
return bar
Ne fonctionne pas. Pourquoi ? L'objet mutable par défaut est réutilisé.
- Ce qu'il faut faire
enumerate
est destiné à. - Cela
seq = seq.append(item)
yseq = seq.sort()
les deux ensemblesseq
aNone
. - Utilisation
set
pour supprimer les doublons. - Presque tout ce qui se trouve dans la
itertools
ycollections
modules. - Comment la
*
y**
les préfixes pour les arguments des fonctions fonctionnent. - Comment les arguments par défaut des fonctions fonctionnent en interne (c.-à-d. ce que l'on entend par
f.func_defaults
est). - Comment (pourquoi, en fait) concevoir les fonctions de manière à ce qu'elles soient utiles en conjonction avec
map
yzip
. - Le rôle des
__dict__
dans les classes. - Ce qu'il faut faire
import
le fait.