[Python] OOP(3): 네임스페이스와 클래스

#1 네임스페이스

네임스페이스는 변수, 함수, 클래스 등 여러가지 이름이 들어있는 공간이다. 네임 스페이스에 있는 이름들은 dir()을 통해 확인할 수 있다.

# Global scope에서 dir() 실행

dir()

dir()은 네임스페이스에 들어 있는 이름들의 리스트를 반환한다.

#2 모듈의 이름을 확인하는 법

__name__을 출력하면 모듈의 이름을 확인할 수 있다. 별개의 모듈이 없는 경우에는 __main__이 출력된다.

import numpy as np

print(np.__name__)  # numpy

import json

print(json.__name__)  # json

print(__name__)  # __main__

__main__은 스크립트가 써진 영역 그 자체이다. 프로그램이 실행되기 위해서는 운영체제가 시작점을 찾아야하는데 main이 시작점이다.

def main():
    # 하고 싶은 일들
    print("I am", __name__)

if __name__ == "__main__":
    main()

#3 객체는 네임스페이스

파이썬에서 객체는 네임스페이스다.

class MyClass:

    def __init__(self):
        self.my_variable = "Hello"

    def my_method(self):
        pass

i = MyClass()

print(i.my_variable)
i.my_method()

dir(i) # 객체 i도 네임스페이스 -> i에 있는 이름들을 리스트 형태로 반환

dir()을 통해 객체의 네임스페이스를 확인하면 객체의 속성들이 있다는 것을 확인할 수 있다.