프로그래밍 언어/python(파이썬)
파이썬에서 if __name__ == “__main__” 이란
hippo 데브옵스
2022. 7. 20. 01:08
- 파이썬을 자주 사용하는 경우 if name == 'main': 을 코드에서 자주 보게 됨
if __name__ == '__main__': 코드
- __name__은 모듈의 이름이 저장되는 변수
- 파이썬 인터프리터로 스크립트 파일을 직접 실행했을 때는 모듈의 이름이 아니라 __name__에 '__main__'이 들어감
- import로 모듈을 가져왔을 때 모듈의 이름이 '__main__'에 들어감
- 어떤 스크립트 파일이든 파이썬 인터프리터가 최초로 실행한 스크립트 파일의 __name__에는 '__main__'이 들어감
- __name__ == '__main__'은 프로그램의 시작점(entry point)을 의미
__name__의 대한 설명 및 예시
- __name__는 스크립트 파일이 실행되는 상태를 파악하기 위해 사용
- 테스트를 통해 hello.py 파일과 main.py 파일의 __name__ 변수 값이 출력
- 파이썬에서 import로 모듈을 가져오면, 모듈 파일을 한 번 실행함 → hello 모듈을 가져오면 hello.py 안의 코드가 실행
- hello.py의 __name__ 변수에는 'hello'가 들어가고, main.py의 __name__ 변수에는 '__main__'이 들어감
- hello.py 파일에 __name__ 등록
hello.py print('hello 모듈 시작') print('hello.py __name__:', __name__) # __name__ 변수 출력 print('hello 모듈 끝')
main.py 파일에 __name__ 등록
main.py import hello # hello 모듈을 가져옴 print('main.py __name__:', __name__) # __name__ 변수 출력
- main.py 파일 실행
# 실행 결과 $ python3 main.py hello 모듈 시작 hello.py __name__: hello hello 모듈 끝 main.py __name__: __main__
- hello.py 모듈을 main.py 파일에서 import한 예시
- hello.py 파일을 실행 → hello.py 스크립트가 실행되기에 hello.py가 main이 됨
- hello.py 파일의 name 변수에는 'hello'가 아니라 'main'이 들어갑니다
$ python3 hello.py hello 모듈 시작 hello.py __name__: __main__ hello 모듈 끝
- hello.py 파일의 name 변수에는 'hello'가 아니라 'main'이 들어갑니다
- hello.py 파일을 실행하였을 때 예시