En fait si on réfléchis aux instructions "def" non pas comme des définitions de fonctions mais comme des créations de singleton avec un opérateur (), on arrive à se mettre ce comportement dans la tête.
Cela dit, c'est vraiment contre-intuitif. Au point que je me demande s'il n'aurait pas été plus malin d'interdire (ou de mettre un warning lorsque la valeur par défaut est mutable) cela.
C'est certes parfois utilisé pour maintenir un état dans une fonction, mais c'est plus un hack qu'autre chose et ça contredit le moto "Explicit is better than implicit.".
Quelqu'un sait si la pertinence de ce comportement a été officiellement discutée ?
[^] # Re: J'aime pas ce comportement
Posté par Jux . En réponse au journal Python et valeurs par défaut des paramètres. Évalué à 6.
En fait si on réfléchis aux instructions "def" non pas comme des définitions de fonctions mais comme des créations de singleton avec un opérateur (), on arrive à se mettre ce comportement dans la tête.
Cela dit, c'est vraiment contre-intuitif. Au point que je me demande s'il n'aurait pas été plus malin d'interdire (ou de mettre un warning lorsque la valeur par défaut est mutable) cela.
C'est certes parfois utilisé pour maintenir un état dans une fonction, mais c'est plus un hack qu'autre chose et ça contredit le moto "Explicit is better than implicit.".
Quelqu'un sait si la pertinence de ce comportement a été officiellement discutée ?