새소식

반응형
250x250
Python

__name__ = "__main__"

  • -
728x90
반응형

__name__

파이썬에서 이미 정한 변수인 내장변수 이름이다. 이 변수에는 항상 파이썬 파일 모듈의 이름이 담긴다.

예를 들어 파이썬 파일 이름이 pythonTest.py 라고 한다면 __name__ 에는 pythonTest 가 담기게 된다.

 

직접 실행된 모듈의 경우 __main__이라는 값을 가지게 되며, 직접 실행되지 않은 import 된 모듈은

모듈의 이름(파이썬 파일명)을 가지게 된다.

 

예)

#pythonModule.py  (import 될 모듈)
def world():
    print("hello")


print(__name__)

#pythonMain.py     (import 할 모듈)
import pythonModule

print(__name__)
pythonModule.world()

 

결과

pythonModule
__main__
hello

 

위 내용을 보면 pythonModule 모듈은 "hello"를 출력하는 world() 함수와 __name__ 내장변수를 출력하도록 되어있다.

pythonMain 모듈은 pythonModule을 import 하여 출력하며 Main에서도 __name__ 내장변수를 출력한다.

 

결과는 import 된 pythonModule의 __name__ 내장함수가 출력되고 pythonMain 모듈의 __name__ 출력 후

pythonModule 모듈의 world() 함수가 출련된다.

 

직접 실행은 pythonMain 모듈에서 실행하며, pythonMain 모듈에서 pythonModule을 import 한다.

즉, 직접 실행된 pythonMain 에서 __name__의 내장함수는 "__main__" 이라고 출력되며,

호출된 pythonModule에서 __name__ 내장함수는 모듈 이름(pythonModule)을 출력하게 된다.

 

 

위의 모듈을 토대로 항상 같이 쓰이는 내용을 본다.

 

if __name__ = "__main__"

위 내용을 해석해보면 '__name__ 이라는 변수의 값이 __main__이라면 아래의 코드를 실행하라'

 

__main__이란건 직접 실행되면 나오는 내용이다. 즉, 직접 실행 됐을경우 아래에 실행할 코드를 집어넣는다.

import 됐을때는 실행되지 않으며, 직접 실행 됐을경우 아래의 코드를 실행한다.

 

 

 

728x90
반응형

'Python' 카테고리의 다른 글

super().__init__()  (0) 2021.12.06
모듈 가져오기(import, from 모듈 import 이름)  (0) 2021.12.01
Class, Object, __init__, __init__(self)  (0) 2021.11.29
__init__.py 역할  (0) 2021.11.29
Venv 란  (0) 2021.11.24
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.