1) if __name__ == “__main__”: 의 의미가 뭐에요?
현재 파이썬 스크립트를 직접 실행할 때 사용합니다.
즉, 현재 실행하는 파일이 thailand.py 이면 if 이하 구문을 실행하고, 그렇지 않고, 외부에서 실행하면 else 구문 실행합니다.
현재 파일에서 바로 테스트 해 보기위해서 주로 if __name__ == "__main__"를 사용합니다.
실행 파일명 : thailand.py(직접 이 파일에서 실행)
class ThailandPackage: def detail(self): print("태국 패키지 입니다.") if __name__ == "__main__": print("thailand 모듈 직접실행") trip_to = ThailandPackage() trip_to.detail() else: print("thailand 외부에서 모듈 호출") |
PS C:\Users\pygichacha\Desktop\python\module_package\travel> python .\thailand.py
thailand 모듈 직접실행
태국 패키지 입니다.
실행 파일명 : main.py(외부파일에서 실행)
from travel import * trip_to = thailand.ThailandPackage() trip_to.detail() |
PS C:\Users\pygichacha\Desktop\python\module_package> python .\main.py
thailand 외부에서 모듈 호출
태국 패키지 입니다.
2) if __name__ == “__main__”: 를 사용하는 이유가 뭐에요?
“ if __name__ == “__main__”: “는 현재 스크립트를 직접 실행 시에만 실행되므로 그 파일을 테스트해 볼 때 주로 사용합니다.
따라서 외부에서 import하여 사용하는 경우 실행되지 않으므로 해당 페이지의 소스내에서만 직접 사용함으로써 그 소스가 오류가 있는지를 직접 점검 해볼 때 사용하기 좋습니다.
3) 실습
(1) if __name__ == “__main__”: 가 포함된 파일(모듈)을 직접 실행하는 것과 외부에서 이 모듈을 실행하는 것의 차이점이 무엇인가요?
모범 답안)
if __name__ == “__main__”: 가 포함된 파일(모듈)을 직접 실행하는 것은 if문 이하가 실행되지만,
외부에서 이 모듈을 실행하면 if문 이하가 실행되지 않습니다.
(단, else 구문이 있다면 else 구문 실행)
즉, if __name__ == “__main__”: 은 외부에서 모듈 실행시 영향을 받지 않는다는 특징이 있습니다.
'파이썬 강좌(초급) > 10.모듈과 패키지' 카테고리의 다른 글
10.모듈과 패키지 - 6) 패키지 및 모듈 설치 (pip install ~~~) (0) | 2024.05.04 |
---|---|
10.모듈과 패키지 - 5) 패키지 및 모듈 위치 찾기 (0) | 2024.05.04 |
10.모듈과 패키지 - 3) __all__ 변수 (0) | 2024.04.14 |
10.모듈과 패키지 - 2) 패키지 (0) | 2024.04.14 |
10.모듈과 패키지 - 1) 모듈 (0) | 2024.04.14 |