본문 바로가기
Programming/Python

if __name__ == "__main__"

by 용스토리랜드 2022. 3. 31.
if __name__ == "__main__" : 
	코드

현재 스크립트 파일이 실행되는 상태를 파악하기 위해 사용합니다. 

 

__name__ 은 모듈의 이름이 저장되는 변수이다. 

 

# hello.py 

print("hello.py __name__ :" , __name__)

# test.py 

import hello # hello 모듈을 import

print("test.py __name__ :", __name__)

 

위와 같이 두 개의 모듈이 있다고 한다면

 

콘솔 (터미널, 명령 프롬프트에서) 

 

python3 test.py 를 실행하게 되면 결과는 

 

>>> __hello__ 

>>>__main__ 이라는 결과를 얻을 수 있을 것이고 

 

python3 hello.py 를 실행하게 되면 결과는 

>>> __main__ 이라는 결과를 얻을 수 있을 것이다.

 

이것이 의미하는 바는 내가 실행시키는 스크립트 파일의 이름은 __name__ 변수에 __main__  이 자동로 할당되는 것을 알 수 있다. 즉, 어떤 스크립트 파일이든 파이썬 인터프리터가 최초로 실행한 스크립트 파일의 __name__ 에는 "__main__" 이 들어가는 것을 알 수 있고, 이는 프로그램의 시작점(entry point) 이라는 뜻입니다. 

 

파이썬은 최초로 시작하는 스크립트 파일과 모듈의 차이가 없습니다. 어떤 스크립트 파일이든 시작점도 될 수 있고, 모듈도 될 수 있습니다. 그래서 __name__ 변수를 통해 스크립트 파일이 시작점인지 모듈인지 판단합니다. 

 

따라서 if __name__ == "__main__" : 처럼 __name__ 변수의 값이 __main__ 인지 확인하는 코드는 현재 스크립트 파일이 프로그램의 시작점이 맞는지 판단하는 작업입니다. 즉, 스크립트 파일이 메인 프로그램으로 사용될 때와 모듈로 사용될 때를 구분하기 위한 용도입니다. 

 

 

 

 

 

 

반응형