selon this page on ne peut pas utiliser le codeQue devrais-je utiliser à la place de l'assignation-dans-une-expression en Python?
if variable = something():
#do something with variable, whose value is the result of something() and is true
Donc, si je veux avoir la structure de code suivant:
if a = something():
#do something with a
elif a = somethingelse():
#...
#5 more elifs
où les fonctions quelque chose() sont de calcul intensif (je veux dire que l'utilisation de la fonction et ensuite le faire à nouveau pour assigner une valeur à une variable au cas où le premier était vrai ne peut pas être fait), que devrais-je écrire à la place en Python? Ajouter 7 autres variables au lieu de 1?
Je ne comprends pas votre problème. Essayez-vous d'éviter d'écrire une instruction d'affectation explicite séparée de l'instruction if? Si oui, pourquoi? Quel est le problème avec la déclaration supplémentaire? –
@ S.Lott: Je peux penser à quelques utilisations pour cela, car c'est un idiome de codage C-style assez standard. Il est souvent utilisé dans les boucles, par exemple: while ((p = getNextPointer())! = NULL) {// use p}. La déclaration supplémentaire, dans de nombreux cas, rend le code beaucoup plus laid (ce qui explique pourquoi c'est si courant, je suppose). –
@ S.Lott: dans mon exemple de code, les 5 dernières fonctions ne sont pas exécutées si la seconde renvoie une vraie réponse, c'est un énorme avantage de performance comparé au calcul et à l'assignation de tout – Fluffy