더북(TheBook)

__name__은 현재 모듈(작성한 파이썬 파일)의 이름을 값으로 가지는 내장 변수입니다. 모듈이 직접 실행되는 경우 __name__의 값은 __main__으로 설정됩니다. 그래서 앞의 코드와 같이 작성하면 파일이 직접 실행될 때 if 문의 동작이 실행됩니다. 직접 실행되지 않고 외부에서 호출해 사용하면 __main__이 아닌 해당 모듈의 이름을 값으로 가지게 됩니다. 그래서 값을 출력해 보면 __main__이 아닌 Thailand 같은 모듈명을 출력합니다.

 

TIP | 내장 변수는 파이썬에서 어떻게 사용할지 역할이 이미 정의되어 있는 변수입니다.

 

travel 패키지의 thailand.py 파일에서 ThailandPackage 클래스 정의 아래에 다음과 같이 코드를 추가해 보겠습니다. __name__ 변수의 값이 __main__일 때, 즉 모듈을 직접 실행하는 경우에는 if 문에서 출력문과 함께 ThailandPackage 클래스로 객체를 만들어 detail() 메서드를 호출합니다. 그렇지 않을 때, 즉 모듈을 외부에서 호출하는 경우에는 else 문으로 처리해 호출 안내 문구만 간략히 출력합니다.

thailand.py

class ThailandPackage:
    def detail(self):
        print("[태국 3박 5일 패키지] 방콕, 파타야 여행(야시장 투어) 50만 원")

 

if __name__ == "__main__": # 모듈 직접 실행
    print("thailand 모듈 직접 실행")
    print("이 문장은 모듈을 직접 실행할 때만 출력돼요.")
    trip_to = ThailandPackage()
    trip_to.detail()
else: # 외부에서 모듈 호출
    print("외부에서 thailand 모듈 호출")
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.