Python/Python 정리

[Python] if __name__ == "__main__" 정리

우준세 2021. 5. 9. 22:42
728x90
반응형

 

이번 게시물은 제가 파이썬을 공부하며 보았던

if __name__ == "__main__"

이 구문에 대해 정리한하여 포스팅 해보려고 합니다.


- if __name__ == "__main__" 이란?

그대로를 풀어서 얘기하자면 " __name__ 이 __main__ 이라면 실행한다. " 입니다.

이것을 이해 하기 위해서 저는 __name__ 과 __main__ 이 무엇인지 이해 하려고 했습니다.

 

 

 

__name__ 은 모듈의 이름을 가지고 있는 파이썬의 내장 함수 입니다. 

직접 실행되는 경우에는 __main__ 을 반환하고 

모듈을 import 해서 실행하는 경우는 모듈을 이름을 봔환하는 함수입니다. 

 


- 예시

 

def func1():
    print("함수 1 수행")
    print(__name__)

func1()

if __name__ == "__main__":
    print("함수 1 직접 실행")
else :
    print("함수 1 임포트 실행")

 

이 처럼 function1.py 를 생성했습니다. 

모듈을 직접 실행 했을 때는

 

이 처럼 __name__ 이 __main__ 으로 적용이 되어 출력되는 것을 볼 수 있습니다.

 

모듈을 import 해서 실행 하기 위해 function2를 만들었습니다.

 

import function1 


print("함수 2 실행")
print(__name__)

if __name__ == "__main__":
    print("함수 2 직접 실행")
else :
    print("함수 2 임포트 실행")

 

앞서 만들었던 function1을 import 하여 실행 시켰고 

function2에서 따로 똑같은 코드를 실행 시켰습니다. 

 

 

그 결과 function1을 import 시켜서 __name__을 출력 시켰을 때는 import 한 모듈의 이름을 출력하였고 

function2의 내부의 __name__은 __main__ 으로 실행 되었습니다. 

 

이 두가지의 결과로 

직접 실행한 코드의 __name__ 은 __main__ 값이 들어가고 

import 된 모듈의 __name__ 은 모듈의 이름이 들어가는 것을 알 수 있었습니다.

 


- 결론

if __name__ == "__main__" 은 직접 실행 할 때 사용되게 만들어주는 조건문이면서

import 되었을 때 사용되지 않게 만들어 주는 역할을 한다. 

 

 

 

틀린 부분이나 질문이 있으시면 댓글로 남겨주세요! 

다음 포스팅으로 찾아오겠습니다! :) 

 

 

728x90
반응형