네임스페이스(namespace)로 해석하는 파이썬 함수와 모듈, 클래스

네임스페이스란?

첫 파이썬 코드를 작성할 때 일어나는 일

파이썬은 내 첫 프로그래밍 언어다. Edx에서 멋진 MIT 교수님이 시키는대로 파이썬을 설치하고 파이썬 쉘에서 인생 첫 코드를 입력했다. 아마 3+5 같은 걸 치고 기뻐했을 것이다. 당신이 첫 코드를 입력할 때, 그게 파이썬 쉘이든 스크립트 파일(.py)이든 아니면 웹 상의 인터랙티브 쉘이든 네임스페이스(namespace 혹은 스코프 scope)위에서 작성되고 있다. 네임스페이스는 변수의 이름이 존재하는 공간이다. 네임스페이스에 정의한 변수만을 사용할 수 있는 것이다. 최상위 레벨의 네임스페이스에는 파이썬에서 미리 정의된 빌트인이 이미 존재한다. dictif도 파이썬에서 정해둔 이름으로 최상위 레벨의 네임스페이스에 존재하기 때문에 언제 어디서든 사용할 수 있는 것이다. #### 여기서 최상위 레벨의 네임스페이스를 __main__ 이라고 부른다.

함수에서 네임스페이스

모듈에서 네임스페이스

클래스에서 네임스페이스

object.X와 같은 용법을 qualification이라고 한다. object의 네임스페이스에서 X라는 이름을 찾아보겠다는 뜻이다. dictionary에서 key의 값을 추출하는 것 같다고? 왜냐하면 실제로 네임스페이스는 내부적으로 딕셔너리로 이뤄져 있기 때문이다! 네임스페이스가 결국 딕셔너리라니, 왠지 서먹하던 사이가 조금은 가까워진 듯한 느낌이다. 처음에 소개한 dir() 방법 말고도, object.__dict__처럼 object의 네임스페이스를 조회할 수 있고, 정말 딕셔너리를 반환한다! 여느 딕셔너리처럼 .keys()로 네임스페이스에 존재하는 이름만 조회해보자.