<개인공부>/[Python]

[파이썬]모듈 실행 제어: Python의 if __name__ == "__main__" 구문

데브수달 2024. 11. 17. 17:39
728x90
반응형

if __name__ == "__main__": 구문은 Python에서 모듈이 직접 실행될 때와 다른 모듈에 의해 임포트될 때의 동작을 구분하기 위해 사용됩니다. 

이 구문이 어떻게 작동하는지, 그리고 왜 필요한지에 대해 자세히 설명해드리겠습니다.

__name__ 변수
①Python에서 각 모듈은 __name__이라는 특별한 변수를 가집니다.
②모듈이 직접 실행될 때, __name__의 값은 "__main__"이 됩니다.
반면, 다른 모듈에서 임포트될 때는 __name__의 값이 해당 모듈의 이름이 됩니다.

사용 예시

def main():
    print("이 모듈이 직접 실행되었습니다.")

if __name__ == "__main__":
    main()

위의 코드를 살펴보면:

1. 모듈이 직접 실행될 때:

이 파일을 직접 실행하면 __name__의 값이 "__main__"이 되므로 main() 함수가 호출됩니다.
출력: 이 모듈이 직접 실행되었습니다.

 

2. 모듈이 임포트될 때:

다른 Python 파일에서 이 모듈을 임포트하면 __name__의 값이 "모듈이름"이 됩니다. 이 경우 main() 함수는 호출되지 않습니다.
예를 들어, import my_module을 하면 main() 함수는 실행되지 않습니다.

왜 필요한가?
1. 코드 재사용성:
이 구문을 사용하면 모듈을 다른 코드에서 재사용할 수 있습니다. 모듈이 임포트될 때는 특정 기능만 사용할 수 있고, 직접 실행할 때는 전체 프로그램을 실행할 수 있습니다.
2.테스트 용이성:
모듈을 개발할 때, 모듈의 기능을 테스트하기 위해 main() 함수를 정의하고, 이를 if __name__ == "__main__": 블록 안에 두면, 모듈을 직접 실행하여 테스트할 수 있습니다.
3.명확한 구조:
코드의 구조를 명확하게 하고, 모듈의 주요 실행 부분을 분리하여 가독성을 높입니다.

 

결론
if __name__ == "__main__": 구문은 Python에서 모듈의 실행 방식을 제어하는 중요한 패턴입니다. 이를 통해 코드의 재사용성을 높이고, 모듈을 테스트하기 쉽게 만들어 줍니다. 이 구문을 이해하면 Python 프로그래밍에서 더 많은 유연성과 구조를 갖출 수 있습니다. 

728x90
반응형