globals(), locals() 및 vars()의 차이점 이해
Python에서는 globals(), locals() 및 vars()는 현재 프로그램의 네임스페이스에 대한 통찰력을 제공하는 함수입니다. 차이점을 살펴보겠습니다.
globals()
-
목적: 전역 네임스페이스의 사전을 반환합니다.
-
동작: 일관성, 항상 현재 모듈에 대한 네임스페이스 사전을 반환합니다.
locals()
-
목적: 현재 네임스페이스를 나타내는 사전을 획득합니다.
-
동작: 호출자의 상황에 따라 동적입니다.
-
함수 내부: 현재 지역 변수와 클로저 변수를 포함하는 사전을 반환합니다. 동일한 스택 프레임 내의 여러 호출은 프레임 객체의 f_locals 속성과의 연관으로 인해 동일한 사전을 반환합니다. 이 사전에 대한 업데이트는 로컬 네임스페이스에 반영되지만 사전에 직접 값을 할당해도 해당 지역 변수는 수정되지 않습니다.
-
함수 외부: 현재 네임스페이스. 이 사전에 대한 변경 사항은 네임스페이스와 동기화되며 그 반대의 경우도 마찬가지입니다.
vars()
-
목적: 허용 객체를 인수로 사용하고 해당 객체의 dict 속성을 반환합니다.
-
Behavior:
- 인수 없이, 현재 네임스페이스의 dict를 반환합니다(함수 외부의 locals()와 유사).
- 객체가 제공되면 일반적으로 속성 데이터가 포함된 객체의 __dict__를 검색합니다.
- 반환된 사전에 대한 업데이트는 개체의 속성에 영향을 미치고, 반대로 개체의 속성에 대한 변경 사항은 사전에 반영됩니다.
주요 사항:
locals() 및 vars()의 동작은 Python 버전 및 구현에 따라 다를 수 있습니다. CPython 2.x에서 locals()는 "exec 'pass'"를 사용하여 다르게 작동할 수 있습니다.
위 내용은 Python에서 `globals()`, `locals()` 및 `vars()`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!