프로그래밍 언어/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__'이 들어감
  1. hello.py 파일에 __name__ 등록
    hello.py
    print('hello 모듈 시작')
    print('hello.py __name__:', __name__)    # __name__ 변수 출력
    print('hello 모듈 끝')
  1. main.py 파일에 __name__ 등록

    main.py
    import hello    # hello 모듈을 가져옴
    
    print('main.py __name__:', __name__)    # __name__ 변수 출력
  1. main.py 파일 실행
    # 실행 결과
    $ python3 main.py
    hello 모듈 시작
    hello.py __name__: hello
    hello 모듈 끝
    main.py __name__: __main__
  1. hello.py 모듈을 main.py 파일에서 import한 예시
  1. hello.py 파일을 실행 → hello.py 스크립트가 실행되기에 hello.py가 main이 됨
    • hello.py 파일의 name 변수에는 'hello'가 아니라 'main'이 들어갑니다
      $ python3 hello.py
      hello 모듈 시작
      hello.py __name__: __main__
      hello 모듈 끝
  1. hello.py 파일을 실행하였을 때 예시

참고 URL : https://dojang.io/mod/page/view.php?id=2448