D'accord. Ma question est donc simple : comment puis-je attribuer la valeur d'une variable en utilisant Eval en Python ? J'ai essayé eval('x = 1')
mais ça ne marchera pas. Il renvoie une SyntaxError. Pourquoi ça ne marche pas ?
Réponses
Trop de publicités?Vous ne pouvez pas, puisque l'affectation de variable est une instruction, pas une expression, et eval
ne peuvent que eval
expressions. Utilisez exec
la place.
Mieux encore, n'utilisez pas l'un ou l'autre et dites-nous ce que vous essayez vraiment de faire afin que nous puissions trouver une solution sûre et sensée.
x = 0 def assignNewValueToX(v) : global x x = v eval('assignNewValueToX(1)') print(x)
Cela fonctionne... parce que python exécutera assignNewValueToX pour pouvoir évaluer l'expression. Il peut être développé davantage, mais je suis sûr qu'il existe une meilleure option pour presque tous les besoins que l'on peut avoir.