programing tip

파이썬에서 eval을 사용하여 변수의 값을 어떻게 할당 할 수 있습니까?

itbloger 2020. 11. 18. 08:36
반응형

파이썬에서 eval을 사용하여 변수의 값을 어떻게 할당 할 수 있습니까?


괜찮아. 그래서 제 질문은 간단합니다. 파이썬에서 eval을 사용하여 변수의 값을 어떻게 할당 할 수 있습니까? 시도 eval('x = 1')했지만 작동하지 않습니다. SyntaxError를 반환합니다. 왜 작동하지 않습니까?


왜냐하면 x=1표현이 아니라 진술 이기 때문 입니다. exec문을 실행하는 데 사용 합니다.

>>> exec('x=1')
>>> x
1

그건 그렇고, 할당 할 동적 이름 만 있으면 exec/ 사용을 피할 수있는 여러 가지 방법 eval이 있습니다. 예를 들어 사전, setattr함수 ,또는 locals()사전:

>>> locals()['y'] = 1
>>> y
1

업데이트 : 위의 코드는 REPL에서 작동하지만 함수 내에서는 작동하지 않습니다. 의문의 여지가없는 경우 일부 대안 은 Python에서 지역 수정을 참조하십시오 exec.


변수 할당은 표현식이 아니라 명령문이므로 eval할 수 없으며 eval표현식 만 가능 합니다. exec대신 사용하십시오 .

더 나은 방법 은 안전하고 건전한 솔루션을 찾을 수 있도록 둘 중 하나를 사용하지 말고 실제로 하려는 작업을 알려주십시오 .


x = 0
def assignNewValueToX (v) :
    글로벌 x
    x = v

eval ( 'assignNewValueToX (1)')
인쇄 (x)

작동합니다 ... 파이썬은 실제로 식을 평가할 수 있도록 assignNewValueToX를 실행합니다. 추가로 개발할 수 있지만 거의 모든 요구 사항에 대해 더 나은 옵션이 있다고 확신합니다.

참고 URL : https://stackoverflow.com/questions/5599283/how-can-i-assign-the-value-of-a-variable-using-eval-in-python

반응형