2017 멀티캠퍼스/Python

[Python] #16 if __name__ == "__main__" 의 의미

꿈꾸는어린이 2018. 1. 17. 18:58

//

일시 : 2018.01.17

내용 : 파이썬 if __name__ == '__main__' 의 의미            동주와 스타벅스에서~

//


if __name__ == '__main__' 의미

  • __name__ 은 현재 모듈의 이름을 담고 있는 내장 변수다.

  • 해당 프로그램을 직접 실행했을 경우에는 참이 되어 main() 함수를 실행하고, 다른 프로그램에서 import하여 사용할 경우에는 간접 실행이 되어 거짓이 되어 main()함수가 실행되지 않는다.

  • 다른 모듈을 import하는 경우는 main안의 코드를 실행하기 보다, 함수나 클래스등만을 사용하는 경우가 대부분. if __name__ == '__main__' 을 사용하여 코드의 수정없이 바로 import하여 사용 가능.

  • 메인 프로그램으로 실행하기 위해 설정.

    다른 모듈에 의해 사용된다면 그 모듈 이름이 새겨짐.

  • 예를 들어 __name__ 이 있는 파일이 aaa.py라면 __name__ 변수에는 __main__ 이라는 값이 들어감.

    하지만 aaa.py를 외부에서 import하여 실행하면 __name__ 에는 파일이름 aaa가 들어감.


=> 요약하자면 해당 모듈이 직접 실행되는 경우에는 __name____main__ 으로 설정되어 if문 아래를 실행하지만, 외부에서 실행된 경우에는 __name____main__이 아니기 때문에 if문 아래를 실행하지 않는다.

  ## aaa.py

print(__name__)

if __name__ == "__main__":
   print("나는 __main__ 이다.")
   
else:
   print("나는 __main__ 이 아니다.")
   print(__name__)

  
## name2.py
import aaa

aaa.py에서 실행한 결과와 name2.py에서 실행한 결과는 다음과 같다.