>  기사  >  백엔드 개발  >  Python에서 `globals()`, `locals()` 및 `vars()`의 차이점은 무엇입니까?

Python에서 `globals()`, `locals()` 및 `vars()`의 차이점은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-17 20:22:02654검색

What's the Difference Between `globals()`, `locals()`, and `vars()` in Python?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.