Les paramètres optionnels sont évalué une seule fois lors de la définition de celle-ci ensuite tu te trimbale toujours la même référence1. Tu obtiens aussi des comportements marrants si tu fais un time.time().
Dans le cas générale2 les valeurs par défaut des paramètres en python devraient être immuables (donc pas de structure de données que tu modifie, pas de valeur qui dépendent d'un contexte) et le reste du temps tu donne la valeur None et tu gère cette valeur dans le reste de ton code.
Note : ça reproduit le comportement des variables statiques du C, mais il vaut probablement mieux utiliser les générateurs (avec yield) si tu as ce genre de besoins. ↩
c'est à dire tout le temps sauf quand tu sais pourquoi tu ne le fais pas ↩
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: On s'en bat le steak
Posté par barmic . En réponse au journal Typage statique pour Python. Évalué à 4.
Rien à voir avec la classe. On peut reproduire le problème avec juste une méthode :
Les paramètres optionnels sont évalué une seule fois lors de la définition de celle-ci ensuite tu te trimbale toujours la même référence1 . Tu obtiens aussi des comportements marrants si tu fais un
time.time().Dans le cas générale2 les valeurs par défaut des paramètres en python devraient être immuables (donc pas de structure de données que tu modifie, pas de valeur qui dépendent d'un contexte) et le reste du temps tu donne la valeur
Noneet tu gère cette valeur dans le reste de ton code.Note : ça reproduit le comportement des variables statiques du C, mais il vaut probablement mieux utiliser les générateurs (avec
yield) si tu as ce genre de besoins. ↩c'est à dire tout le temps sauf quand tu sais pourquoi tu ne le fais pas ↩
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)