107 votes

Comment puis-je attribuer la valeur d'une variable en utilisant eval en python ?

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 ?

18voto

Rafe Kettler Points 29389

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.

1voto

Domchix Points 1

Vous pouvez réellement mettre la commande exec() l'intérieur eval()

Donc, votre relevé ressemblerait eval("exec('x = 1')")

p.s. c'est dangereux

0voto

sanyi Points 627
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.

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