[ Python ] __all__ 사용해서 패키지의 모듈을 import 하는 방법.

JooKit 주킷 2021. 3. 8. 17:36
목차 접기
728x90
반응형

travel package 의 thailand module

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

travel package 의 vietnam module

class VietnamPackage:
    def detail(self):
        print("[베트남 패키지 3박 5일] 다낭 효도 여행 60만원")

package를 import 하는 파일

# __all__

# from random import * 

from travel import * # 패키지 안에 포함된 것들 중에서 import 되기 원하는 것들만 공개하고 원하지 않는 것은 비공개 할 수 있다.(__init__)
trip_to = vietnam.VietnamPackage() 
# travel 패키지의 모든 것을 사용하겠다고 했지만 vietnam이 없다고 오류 발생한다. 그러나 실행은 잘 된다.
# pylint의 문제를 잠깐 숨기기 위한 방법

# File - preferences - settings - 'linting'이라고 검색 - Python>linting:Enabled 를 체크해제해서 잠시 비활성화 시킨다.

trip_to2 = thailand.ThailandPackage()
trip_to.detail()
trip_to2.detail()

모두 * import 하지 않고 공개, 비공개할 모듈을 지정하는 파일(init)

| package 폴더 안에 다른 모듈들이랑 같이 위치해 있어야 한다.

__all__ = ["vietnam", "thailand"]   
728x90
반응형
LIST