파이썬(Python)/문법

파이썬(Python) 속성 중 __name__ 이란?

끄적끄적아무거나 2021. 4. 15. 19:29
반응형

__name__ 이란?

 

파이썬 코드 예제를 살펴 보면 아래와 같은 코드를 종종 볼수 있다.

 

if __name__ == '__main__':

 

간단히 설명하면 __name__은 파이썬에 들어가 있는 기본 속성으로 해당 모듈의 위치를 알려 준다. 

 

참고로 파이썬의 기본 속성은 아래와 같이 확인할 수 있다. 

 

print(dir())
# 결과
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']

 

name은 실행이 발생하는 위치인데 아래 예제를 통해 이해해보겠다.

 

 

 

__name__ 예제

 

print(__name__)

위 코드처럼 test1.py 파일에 print 문을 사용해서 __name__ 을 출력하였다. test2.py를 실행하였다.

__main__

결과는 위처럼 __main__ 이 나왔다.  즉, 해당 모듈파일에서 파이썬을 실행하여서 name 은 main이라는 의미이다. 

 

 

import test1
print(__name__)

다음은 위 코드를 test2.py라는 파일로 작성하여 실행하였다.

test1
__main__

결과는 위처럼 나왔는데 의미는 import에 의해 test1.py라는 모듈이 먼저 시행되었고 그안에 print를 실행했는데 name이 모듈이름 test1을 가져 온것이다. 그리고 test2.py의 name을 읽어왔는데 파이썬을 test2.py에서 실행하였기 때문에 name이 main이 된 것이다. 

 

즉, name을 사용해서 실행 위치나 모듈명을 확인할 수 있다.

 

 

반응형