Python : Locals ()를 사용하여 함수 내에서 현재 범위를 수정할 수없는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/686715

  •  22-08-2019
  •  | 
  •  

문제

Localals ()의 구성원을 작성/수정하는 이유는 기능 내에서 작동하지 않습니까?

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
도움이 되었습니까?

해결책

왜 그렇게 될까요? 표현을 반환하도록 설계되었으며 현지인을 편집하기위한 적이 없었습니다. 그것은 선적 서류 비치 경고.

다른 팁

LOCALS ()는 네임 스페이스의 사본을 반환합니다 (Globals ()가하는 것과 반대). 이는 Locals ()가 반환 한 사전에서 수행하는 모든 변경이 영향을 미치지 않음을 의미합니다. 체크인 파이썬으로 뛰어 들었습니다 예 4.12에서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top