본문 바로가기

Programming/python

python의 namespaces에 대해 알아보자

파이썬 네임스페이스(Namespace)란 변수들의 이름과 그들이 가리키는 객체들 간의 매핑을 저장하는 공간입니다.

파이썬은 네임스페이스를 사용하여 식별자(변수, 함수, 클래스 등)들을 저장하고 구분합니다.

이는 파이썬에서 변수 이름 충돌을 방지하고 모듈화를 지원하는 데 중요한 역할을 합니다.

파이썬은 다음과 같은 세 가지 주요 네임스페이스를 가지고 있습니다:

1. Built-in Namespace (내장 네임스페이스):
   이 네임스페이스에는 파이썬에서 기본적으로 제공하는 내장 함수 (예: print(), len())와 예약어들이 포함됩니다. 이 네임스페이스의 변수와 함수들은 어떤 파일이나 모듈을 import 하지 않아도 바로 사용할 수 있습니다.

2. Global Namespace (전역 네임스페이스):
   이 네임스페이스에는 현재 모듈 또는 스크립트의 전역 범위에서 정의된 변수, 함수, 클래스 등이 포함됩니다. 모듈 수준에서 정의된 모든 식별자들은 해당 모듈의 전역 네임스페이스에 저장됩니다.

3. Local Namespace (지역 네임스페이스):
   이 네임스페이스는 함수나 메서드가 호출될 때 생성되며, 해당 함수 내부에서 정의된 변수들을 저장합니다. 함수가 호출될 때마다 새로운 지역 네임스페이스가 생성되며, 함수의 실행이 끝나면 해당 네임스페이스는 삭제됩니다.

 


네임스페이스는 이름과 객체 사이의 매핑을 유지하므로, 같은 이름이라도 서로 다른 네임스페이스에 속한 객체들은 서로 다른 변수로 취급됩니다. 이를 통해 변수 이름 충돌을 피하고 모듈과 함수 등을 독립적으로 구현할 수 있습니다.

파이썬에서 네임스페이스는 모듈과 클래스를 사용하여 조직화됩니다. 모듈은 .py 확장자를 가진 파일이며, 각 모듈은 자체적인 네임스페이스를 가지고 있습니다. 또한 클래스를 정의하여 객체 지향 프로그래밍을 할 때, 각 클래스는 자체적인 네임스페이스를 갖습니다.

네임스페이스는 파이썬에서 코드의 구조와 유지보수를 용이하게 하며, 모듈화와 코드 재사용을 지원합니다. 변수나 함수의 이름을 충돌 없이 정의하고 사용하기 위해 네임스페이스 개념을 적절히 이해하고 활용하는 것이 중요합니다.

반응형