파이썬 강좌(초급)/10.모듈과 패키지

10.모듈과 패키지 - 4) if __name__ == "__main__":

파기차차 2024. 5. 4. 11:53
728x90
반응형
SMALL

 

 

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__”: 은 외부에서 모듈 실행시 영향을 받지 않는다는 특징이 있습니다.

 

 

 

728x90
반응형
LIST