오케이. 그래서 제 질문은 간단합니다 : 어떻게 파이썬에서 eval을 사용하여 변수의 값을 할당 할 수 있습니까? 나는 eval('x = 1')
을 시도했지만 작동하지 않습니다. SyntaxError를 반환합니다. 왜이 기능이 작동하지 않습니까?어떻게 파이썬에서 eval을 사용하여 변수의 값을 할당 할 수 있습니까?
답변
x=1
은 표현식이 아니기 때문에 표현식이 아닙니다. 명령문을 실행하려면 exec
을 사용하십시오.
>>> exec('x=1')
>>> x
1
는 그건 그렇고, 당신이 필요로하는 모든 할당하는 동적 이름, 예를 들어, 경우 exec
/eval
사용하지 않도록하는 방법에는 여러 가지가 있습니다 당신이 사전을 사용할 수는 setattr
function, 또는 는 :locals()
dictionary
>>> locals()['y'] = 1
>>> y
1
업데이트 : 코드는 위의 REPL에서 작동하지만, 그것은 함수 내에서 작동하지 않습니다. exec
이 문제가 아닌 경우 일부 방법은 Modifying locals in Python을 참조하십시오.
그리고 btw, 이와 같은 변수를 변경하려면 사전을 대신 사용하는 것이 좋습니다. –
다음번에 이런 식으로 사전을 사용할 것입니다. –
파이썬 문서는'locals()'를 수정해서는 안된다고 말합니다. (http://docs.python.org/2/library/functions.html#locals)'eval()'을 완전히 사용하지 않고 과제를 사용하는 또 다른 방법이 있습니까? –
가변 할당은 표현식이 아니기 때문에 수 없습니다. eval
은 수식 만 eval
입니다. 대신 exec
을 사용하십시오.
더 나은 아직, 사용하지 말고 우리가 안전하고 정상적인 해결책을 찾을 수 있도록 시도하십시오.
x = 0 def assignNewValueToX(v): global x x = v eval('assignNewValueToX(1)') print(x)
그것은 작동합니다 ... 실제로 파이썬은 표현식을 평가할 수 있도록 assignNewValueToX를 실행합니다. 그것은 더 발전 될 수 있지만, 나는 거의 모든 필요를 위해 더 나은 선택이있을 것이라고 확신합니다.
거의,하지만 변수 이름을 동적으로 지정해야합니다. 그래도 고마워. –
- 1. 어떻게 양수 값을 할당 할 수 있습니까?
- 2. PHP에서 eval을 어떻게 안전하게 사용할 수 있습니까?
- 3. UIButton을 누르면이 변수의 값을 어떻게 인쇄 할 수 있습니까?
- 4. 레이블에 객체 값을 할당 할 수 있습니까?
- 5. 이와 같은 값을 할당 할 수 있습니까?
- 6. jQuery/JavaScript에서 Html.Hiddenfor에 값을 어떻게 할당 할 수 있습니까?
- 7. 스칼라에서 어떻게 튜플 값을 재 할당 할 수 있습니까?
- 8. 어떻게 TStream에서 오는 Olevariant 변수에 값을 할당 할 수 있습니까?
- 9. 리터럴에 값을 어떻게 할당 할 수 있습니까? ('A'는 = 10)
- 10. Html Helpers를 사용하여 MVC보기에서 HTML 값을 할당 할 수 있습니까?
- 11. 어떻게 파이썬에서 PDF를보고 인쇄 할 수 있습니까?
- 12. 실행해야 할 변수의 특정 문자열에 대해 eval을 사용하지 않으려면 어떻게해야합니까?
- 13. 어떻게 파이썬에서 정의 된 변수의 값을 입력으로 mysql의 프로 시저에 전달할 수 있습니까?
- 14. makefile 변수에 소스 파일에서 읽은 값을 할당 할 수 있습니까?
- 15. 어떻게 파이썬에서 WPF로 작업 할 수 있습니까?
- 16. 파이썬에서 어떻게 문자열을리스트로 변환 할 수 있습니까?
- 17. 파이썬에서 어떻게 erlang을 호출 할 수 있습니까?
- 18. js eval을 사용하여 값을 반환하려면 어떻게해야합니까?
- 19. 어떻게 Perl 변수 이름으로 변수의 값을 사용할 수 있습니까?
- 20. DateTime? 값을 할당 할 수 없습니다.
- 21. Perl 추적에서 변수의 값을 어떻게 볼 수 있습니까?
- 22. 어떻게 SQLite는 필드 시퀀스 값을 할당 할 수
- 23. null을 할당 할 수 있습니까?
- 24. 예외 추적에서 매개 변수의 전체 값을 기록 할 수 있습니까?
- 25. 함수 매개 변수의 값을 변경할 수 있습니까?
- 26. 하나의 매개 변수에 값을 할당 할 수 있습니까?
- 27. 어떻게 eval을 사용하지 않도록 다음 코드를 변경할 수 있습니까?
- 28. 변수의 이름은 어떻게 얻을 수 있습니까?
- 29. 파이썬에서 변수를 포맷 할 수 있습니까?
- 30. 어떻게 문자를 파이썬에서 정수로 변환 할 수 있습니까?
무엇을하려하십니까? 당신이 무엇을 하든지 eval을 사용해서는 안됩니다. – babsher