supergravity
파이썬 - __main__ 본문
__main__은 파이썬 인터프리터가 실행되는 스크립트의 위치를 나타내는 것입니다.
파이썬은 namespace를 통해 오브잭트와 name(변수)를 연결합니다.
namespace는 딕셔너리 형태로 대부분 구현되어 있습니다.
namespace 중 파이썬 인터프리터가 실행될 때 global namespace가 생성됩니다.
global namespace는 globals()를 print 해보면 성분을 확인할 수 있습니다.
프린트해보면 키와 벨류로 구성된 딕셔너리 형태입니다.
namespace의 키는 스크립트에 바로 작성할 수 있습니다.
global namespace를 잘 보면 '__name__' : '__main__'가 저장되어 있습니다.
namespace의 키는 스크립트에서 사용할수 있으니 print(__name__)을 해봅시다.
그러면 __main__이 출력되는 것을 볼수 있습니다.
파이썬 프로그래머 라면 import를 통해 외부 모듈을 사용해 본 적이 있을 것입니다.
import 하면 파이썬 스크립트에서 바로 사용할 수 있습니다.
예를 들어
import dis
print(dis)
처럼 사용할수 있습니다.
이렇게 사용할수 있는 이유는 dis 또한 global namespace에 추가되기 때문입니다.
외부 모듈을 impor한 상태로 globals()를 체크 해보면 모듈의 이름을 찾아볼 수 있습니다.
정리해 보면 __name__은 인터프리터가 생성될때 생성됩니다.
그리고 python test.py처럼 처음 실행되는 스크립트를 나타내는 name입니다.
if __name__ == "__main__":
# execute only if run as a script
main()
그래서 위와 같은 코드로 많이 활용 됩니다.
https://docs.python.org/3.6/library/__main__.html#module-__main__
'콘텐츠 > 파이썬 -구조' 카테고리의 다른 글
파이썬 - namespaces, scopes (0) | 2021.09.06 |
---|---|
cython , cpython, python ? (0) | 2021.09.04 |
파이썬 - 메모리 관리와 좋은 습관 (9) | 2021.08.31 |
파이썬 - 스트링을 메모리에 어떻게 저장할까? (2) | 2021.08.29 |