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__ 인지 확인하는 코드는 현재 스크립트 파일이 프로그램의 시작점이 맞는지 판단하는 작업입니다. 즉, 스크립트 파일이 메인 프로그램으로 사용될 때와 모듈로 사용될 때를 구분하기 위한 용도입니다.
'Programming > Python' 카테고리의 다른 글
[클래스] 비공개 속성 사용하기 (0) | 2023.03.12 |
---|---|
[클래스] 속성 사용하기 (0) | 2023.03.12 |
[클래스] Class 사용하기 (1) | 2023.03.12 |
모듈/패키지/라이브러리 (1) | 2022.03.31 |
파이썬 문자열 포매팅 방법(% 서식문자, str.format, f-string) (0) | 2022.03.23 |