더북(TheBook)

그런데 태국 패키지여행 상품은 어떨까요? VietnamPackage 클래스의 객체 생성 부분을 주석 처리하고 다음 줄에 ThailandPackage 클래스의 객체를 만듭니다.

ch11.py

from travel import *

# trip_to = vietnam.VietnamPackage()
trip_to = thailand.ThailandPackage() # 태국
trip_to.detail()

실행결과 icon_con

NameError: name 'thailand' is not defined

실행하니 vietnam 모듈에서 발생한 오류가 모듈명만 바뀌어서 똑같이 발생합니다. 이는 __init__.py 파일의 __all__ 변수에는 현재 vietnam만 저장돼 있기 때문입니다. 즉, vietnam 모듈만 공개돼서 thailand 모듈은 외부에서 사용할 수 없습니다.

오류를 해결해 봅시다. __init__.py 파일을 열고 __all__ 변수에 thailand 모듈을 추가한 후 저장하겠습니다. 이제 vietnamthailand 모듈 모두 공개로 설정한 상태입니다.

__init__.py

__all__ = ["vietnam", "thailand"] # vietnam, thailand 모듈 공개
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.