본문 바로가기
FnQ/Python

Python의 if __name__ == '__main__': 구문 이해하기

by codeai 2024. 7. 3.

Python의 if __name__ == '__main__': 구문 이해하기

Python 코드를 보다 보면 자주 마주치는 구문이 있습니다: if __name__ == "__main__":. 이 구문이 무엇을 의미하는지, 왜 사용하는지 알아보겠습니다.

Python의 if __name__ == '__main__': 구문 이해하기

기본 개념

Python에서 __name__은 특별한 변수입니다. 이 변수는 현재 모듈의 이름을 담고 있습니다. Python 인터프리터가 직접 실행한 모듈의 경우, __name__"__main__"으로 설정됩니다.

왜 사용하나요?

이 구문의 주요 목적은 스크립트가 직접 실행되었는지, 아니면 다른 모듈에서 임포트되었는지를 구분하는 것입니다. 이를 통해 다음과 같은 이점을 얻을 수 있습니다:

  1. 모듈을 다른 스크립트에서 임포트했을 때 특정 코드가 실행되는 것을 방지합니다.
  2. 모듈을 직접 실행할 때만 실행되어야 하는 코드를 지정할 수 있습니다.
  3. 모듈을 재사용 가능한 방식으로 구조화할 수 있습니다.

예제로 이해하기

다음 예제를 통해 이 구문의 동작을 살펴보겠습니다:

# 파일명: example.py

def main_function():
    print("이 함수는 스크립트를 직접 실행할 때만 호출됩니다.")

print("이 문장은 항상 실행됩니다.")

if __name__ == "__main__":
    main_function()
    print("스크립트가 직접 실행되었습니다.")

이 스크립트를 직접 실행하면:

이 문장은 항상 실행됩니다.
이 함수는 스크립트를 직접 실행할 때만 호출됩니다.
스크립트가 직접 실행되었습니다.

하지만 다른 스크립트에서 이 모듈을 임포트하면:

import example

출력:

이 문장은 항상 실행됩니다.

if __name__ == "__main__": 블록 내부의 코드는 실행되지 않습니다.

실제 사용 사례

  1. 테스트 코드 실행: 모듈에 대한 간단한 테스트를 모듈 내에 포함시킬 수 있습니다.
  2. 명령줄 인터페이스: 스크립트를 명령줄 도구로 사용할 때 유용합니다.
  3. 모듈과 스크립트의 이중 사용: 같은 파일을 모듈로도, 독립 스크립트로도 사용할 수 있게 합니다.

결론

if __name__ == "__main__": 구문은 Python에서 모듈과 스크립트의 유연한 사용을 가능하게 하는 강력한 도구입니다. 이를 통해 코드의 재사용성을 높이고, 모듈을 더 효과적으로 구조화할 수 있습니다. Python 프로그래밍을 할 때 이 구문의 사용을 고려해보세요. 코드의 구조와 재사용성이 크게 개선될 것입니다.