파이썬에서 우리는 변수, 함수, 라이브러리 및 모듈 등을 다룹니다. 사용하려는 변수의 이름이 이미 다른 변수의 이름으로 또는 다른 함수 또는 다른 메서드의 이름으로 존재할 가능성이 있습니다. 이러한 시나리오에서 우리는 이 모든 이름이 파이썬 프로그램에 의해 관리되는 방법에 대해 배워야 합니다. 이것이 네임스페이스의 개념입니다.
다음은 네임스페이스의 세 가지 범주입니다.
-
로컬 네임스페이스:프로그램에 의해 선언된 함수 및 변수의 모든 이름은 이 네임스페이스에 보관됩니다. 이 네임스페이스는 프로그램이 실행되는 동안 존재합니다.
-
전역 네임스페이스:이 네임스페이스는 파이썬 프로그램에서 사용되는 모듈에 포함된 함수 및 기타 변수의 모든 이름을 보유합니다. 로컬 네임스페이스의 일부인 모든 이름을 포함합니다.
-
내장 네임스페이스:프로그래밍 환경으로 로드되는 파이썬 인터프리터의 일부로 사용할 수 있는 기본 이름과 함께 사용할 수 있는 가장 높은 수준의 네임스페이스입니다. 로컬 네임스페이스를 차례로 포함하는 글로벌 네임스페이스를 포함합니다.
파이썬의 범위
네임스페이스는 사용 가능한 경우 수명이 있습니다. 범위라고도 합니다. 또한 범위는 변수 또는 개체가 위치한 코딩 영역에 따라 달라집니다. 내부 루프에서 선언된 변수를 외부 루프에서 사용할 수 있지만 그 반대의 경우는 사용할 수 없는 방법은 아래 프로그램에서 볼 수 있습니다. 또한 외부 함수의 이름이 전역 변수의 일부가 되는 방식에 유의하십시오.
예시
prog_var = 'Hello' def outer_func(): outer_var = 'x' def inner_func(): inner_var = 'y' print(dir(), ' Local Variable in Inner function') inner_func() print(dir(), 'Local variables in outer function') outer_func() print(dir(), 'Global variables ')
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
출력
['inner_var'] Local Variable in Inner function ['inner_func', 'outer_var'] Local variables in outer function ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'outer_func', 'prog_var'] Global variables