더북(TheBook)

원래 파일로 돌아가서 다시 코드를 실행해 봅시다. 이번에는 thailand 모듈에도 이상 없이 접근해 코드가 제대로 동작하는 것을 확인할 수 있습니다.

ch11.py

from travel import *

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

실행결과 icon_con

[태국 3박 5일 패키지] 방콕, 파타야 여행(야시장 투어) 50만 원

정확히 말하면 __all__from travel import *와 같이 *를 이용해 패키지 내 모듈들을 가져다 쓰려고 하는 경우에 import할 대상을 정의하는 역할을 합니다. 패키지 내에 __init__.py 파일이 없거나 __all__ 리스트 안에 아무런 모듈을 넣지 않더라도 from travel import vietnam, thailand와 같이 작성하면 여전히 vietnam, thailand 모듈을 사용할 수 있다는 점을 알아두세요.

 

 

1분 퀴즈

3. 패키지의 __init__.py 파일에서 사용할 수 있는 __all__에 관해 잘못 설명한 것은?

__all__은 반드시 정의해야 하는 것은 아니다.

② 리스트 형태로 모듈명을 넣으면 해당 모듈을 공개로 설정한다.

__all__에 포함되지 않은 모듈은 어떤 방법으로든 사용할 수 없다.

from 패키지명 import *를 했을 때 import할 대상을 정의할 수 있다.

정답확인

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.