메인 최상위 스크립트 환경

What is it

__main__은 최상위 코드가 실행되는 범위의 이름입니다. 모듈의 이름은 표준 입력, 스크립트 또는 대화형 프롬프트에서 읽을 때 __main__과 같게 설정됩니다.

모듈은 자신의 __name__을 확인하여 메인 범위에서 실행 중인지 여부를 확인할 수 있으며, 이를 통해 모듈 내에서 코드를 조건부로 실행하는 일반적인 관용구를 사용할 수 있습니다. 스크립트로 실행되거나 python -m으로 실행될 때는 실행되지만, 가져오기 (import) 될 때는 실행되지 않습니다.

# __name__ == "__main__": 스크립트가 직접 실행되는지 확인 (가져오기 시 아님)
if __name__ == "__main__":  # 스크립트로 실행될 때 True, 가져오기 시 False
    # 스크립트로 실행될 때만 실행
    main()

패키지의 경우, main.py 모듈을 포함하여 동일한 효과를 얻을 수 있으며, 이 모듈의 내용은 해당 모듈이 -m 으로 실행될 때 실행됩니다.

예를 들어, 모듈로 사용되도록 설계된 스크립트를 개발하는 경우 다음과 같이 해야 합니다.

# 예시: 함수는 가져올 수 있지만, 테스트 코드는 직접 실행될 때만 실행됨
def add(a, b):
    return a+b

if __name__ == "__main__":  # 파일이 직접 실행될 때만 실행됨, 가져오기 시 실행 안 됨
    add(3, 5)
퀴즈

로그인하여 이 퀴즈에 답하고 학습 진행 상황을 추적하세요

파이썬 파일을 스크립트로 직접 실행할 때 __name__의 값은 무엇입니까?
A. 파일 이름
B. "**main**"
C. None
D. True

Advantages

  1. 모든 파이썬 모듈에는 __name__이 정의되어 있으며, 이것이 __main__인 경우 사용자가 모듈을 독립적으로 실행하고 있음을 의미하며, 이에 따라 적절한 조치를 취할 수 있습니다.
  2. 이 스크립트를 다른 스크립트에서 모듈로 가져오면 이름은 스크립트/모듈의 이름으로 설정됩니다.
  3. 파이썬 파일은 재사용 가능한 모듈 또는 독립 실행형 프로그램 역할을 할 수 있습니다.
  4. if __name__ == "__main__":은 파일이 직접 실행될 때만 특정 코드를 실행하고, 가져오기될 때는 실행하지 않도록 하는 데 사용됩니다.
퀴즈

로그인하여 이 퀴즈에 답하고 학습 진행 상황을 추적하세요

if __name__ == "__main__":을 사용하는 주된 목적은 무엇입니까?
A. 파일이 직접 실행될 때만 코드를 실행하고, 가져오기될 때는 실행하지 않음
B. 파일이 가져와지는 것을 방지
C. 파일 실행 속도를 높임
D. 다른 모듈로부터 코드를 숨김