Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬 네임스페이스와 변수의 범위를 설명합니다.

<시간/> <본문>

네임스페이스는 범위를 구현하는 방법입니다. Python에서 각 패키지, 모듈, 클래스, 함수 및 메서드 함수는 변수 이름이 확인되는 "네임스페이스"를 소유합니다. 함수, 모듈 또는 패키지가 평가될 때(즉, 실행 시작) 네임스페이스가 생성됩니다. "평가 컨텍스트"로 생각하십시오. 함수 등이 실행을 마치면 네임스페이스가 삭제됩니다. 변수가 삭제됩니다. 또한 이름이 로컬 네임스페이스에 없는 경우 사용되는 전역 네임스페이스가 있습니다.

각 변수 이름은 로컬 네임스페이스(함수의 본문, 모듈 등)에서 확인한 후 전역 네임스페이스에서 확인됩니다.

변수는 일반적으로 로컬 네임스페이스에서만 생성됩니다. 전역 및 비로컬 문은 로컬 네임스페이스가 아닌 다른 변수를 생성할 수 있습니다.

변수를 사용하여 값을 가져와야 하는 위치를 결정할 때 범위 확인이 필요합니다. Python의 범위 확인은 LEGB 규칙을 따릅니다.

L, 로컬 — 함수(또는 람다) 내에서 어떤 방식으로든 할당된 이름으로 해당 함수에서 전역으로 선언되지 않습니다.

E, Enclosing-function locals — 내부에서 외부로 모든 정적으로 둘러싸는 함수(또는 람다)의 로컬 범위에 있는 이름입니다.

G, 전역(모듈) — 모듈 파일의 최상위 수준에서 할당되거나 파일 내의 def에서 전역 문을 실행하여 할당된 이름입니다.

B, 내장(Python) — 내장 이름 모듈에 미리 할당된 이름:open, range, SyntaxError 등