61 votes

Comment fonctionnent les affectations enchaînées ?

Une citation de quelque chose :

>>> x = y = somefunction()

est la même chose que

>>> y = somefunction()
>>> x = y

Question : Est-ce que

x = y = somefunction()

la même chose que

x = somefunction()
y = somefunction()

?

D'après ce que j'ai compris, ils devraient être identiques car somefunction ne peut retourner qu'une seule valeur.

6 votes

Vous pouvez utiliser l'option python au lieu de python-3.x puisqu'il est plus largement suivi et que votre question n'est pas spécifique à Python 3. Vous n'avez pas non plus besoin de répéter la balise dans le titre, mais il est bon de mentionner votre version de Python quelque part.

4voto

Rob Cliffe Points 49

Sur

x = somefunction()
y = somefunction()

somefunction sera appelé deux fois au lieu d'une.

Même si elle renvoie le même résultat à chaque fois, cela se remarquera si elle met une minute à renvoyer un résultat ! Ou si elle a un effet secondaire, par exemple si elle demande à l'utilisateur son mot de passe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X