지역 구성원()을 생성/수정하는 것이 함수 내에서 작동하지 않는 이유는 무엇입니까?Python : locals()를 사용하여 함수 내에서 현재 범위를 수정할 수없는 이유는 무엇입니까?
Python 2.5 (release25-maint, Jul 20 2008, 20:47:25)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> # Here's an example of what I expect to be possible in a function:
>>> a = 1
>>> locals()["a"] = 2
>>> print a
2
>>> # ...and here's what actually happens:
>>> def foo():
... b = 3
... locals()["b"] = 4
... print b
...
>>> foo()
3
왜 이런 종류의 작업을 수행 하시겠습니까? –
외부 적으로 가져온 데이터를 사용하여 변수로드를 초기화하려고합니다. 그래서 내 생각은 : 1 모든 변수를 "= None"으로 선언하십시오. 2 varname -> 외부 소스 경로 매핑을 작성하십시오. 3 맵을 반복하고, 변수를 설정하거나 오류로 중단하십시오. 그러나 변수를 설정하는 데 문제가 있습니다. – RobM
낡은 질문을 되살려 죄송합니다. 동일한 것을하고 싶습니다 : 나는 딕트가 있고, 딕트의 모든 요소를 지역 변수로 바꾸고 싶습니다. (그래서 options.foo 대신 foo라고 말할 수 있습니다). 지금 eval을 사용하여이 작업을 수행하고 있지만 추한 것입니다. 다른 방법이 없습니까? – GaryO