그런데 태국 패키지여행 상품은 어떨까요? VietnamPackage 클래스의 객체 생성 부분을 주석 처리하고 다음 줄에 ThailandPackage 클래스의 객체를 만듭니다.
ch11.py
from travel import *
# trip_to = vietnam.VietnamPackage()
trip_to = thailand.ThailandPackage() # 태국
trip_to.detail()
실행결과 |
NameError: name 'thailand' is not defined |
실행하니 vietnam 모듈에서 발생한 오류가 모듈명만 바뀌어서 똑같이 발생합니다. 이는 __init__.py 파일의 __all__ 변수에는 현재 vietnam만 저장돼 있기 때문입니다. 즉, vietnam 모듈만 공개돼서 thailand 모듈은 외부에서 사용할 수 없습니다.
오류를 해결해 봅시다. __init__.py 파일을 열고 __all__ 변수에 thailand 모듈을 추가한 후 저장하겠습니다. 이제 vietnam과 thailand 모듈 모두 공개로 설정한 상태입니다.
__init__.py
__all__ = ["vietnam", "thailand"] # vietnam, thailand 모듈 공개