반응형
파이썬에서 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를 실행합니다. 추가로 개발할 수 있지만 거의 모든 요구 사항에 대해 더 나은 옵션이 있다고 확신합니다.
반응형
'programing tip' 카테고리의 다른 글
누군가 ivy.xml 종속성의 conf 속성을 설명 할 수 있습니까? (0) | 2020.11.18 |
---|---|
HTML 4/5에서 JSF + Facelets를 사용할 수 있습니까? (0) | 2020.11.18 |
한 번에 두 개 이상의 파일을 압축 해제하려면 어떻게해야합니까? (0) | 2020.11.17 |
전체 단어를 grep하는 방법 (0) | 2020.11.17 |
로컬 IIS를 통해 작동하도록 Windows 인증을 가져올 수 없습니다. (0) | 2020.11.17 |