728x90
if __name__ == "__main__": 구문은?
파이썬 스크립트 파일이 직접 실행될 때만 특정 코드 블록을 실행하도록 하는 관용구(idiom)
if __name__ == "__main__": 구문을 쓰는 이유?
- 모듈과 스크립트의 분리:
- 파이썬 파일은 스크립트로 실행되거나 다른 파일에서 모듈로 import될 수 있다.
- if __name__ == "__main__":을 사용하면 스크립트로 직접 실행될 때만 특정 코드 블록이 실행되어 스크립트로서의 역할을 수행하고, import될 때는 실행되지 않아 모듈로 사용될 수 있다.
- 명시적인 진입점:
- if __name__ == "__main__":을 사용하면 코드의 진입점이 명시적으로 표시됨. 즉, 스크립트 파일의 시작점이 어디인지 명확하게 표현된다.
- 재사용성과 테스트 용이성:
- 코드를 모듈화하고 if __name__ == "__main__":을 사용하면 해당 파일이 import될 때는 코드 블록이 실행되지 않아서, 모듈을 다른 프로젝트에서 쉽게 재사용할 수 있다.
- 또한, 이 구문을 사용하면 해당 파일의 기능을 테스트하기 위해 직접 실행할 때만 필요한 코드를 넣을 수 있다.
만약 A.py와 B.py라는 파일이 있고, A.py와 B.py에 각각 동일한 변수명이 있다고 했을 때,
두 파일이 동시에 실행되거나 하나가 다른 하나를 import 하면 변수명의 충돌이 발생할 수 있다!!
이는 의도치 않은 결과를 초래하고 오류를 발생시킨다.
그래서 이러한 오류를 방지하기 위해 if __name__ == "__main__":을 사용한다.
이 구문을 사용하면 해당 파일이 직접 실행될 때만 코드 블록이 실행되므로, 다른 파일에서 import 될 때는 실행되지 않는다.
이로써 변수명의 충돌을 방지하고, 각 파일이 독립적으로 동작할 수 있도록 한다!
728x90
'Python > Python 기초문법' 카테고리의 다른 글
[Pandas] lambda, map, apply (0) | 2024.02.14 |
---|---|
[Python] 문자열 포매팅 (0) | 2024.02.01 |
Python - VScode에서 가상환경 만들기 (0) | 2024.01.21 |
Python - Pandas excel 파일 입출력 및 데이터 불러오기 (0) | 2024.01.08 |
Python - Pandas 데이터 통합하기 (concat, join, merge) (1) | 2024.01.08 |