import <모듈이름>
<모듈 이름>.<모듈에서 사용하길 원하는 변수/함수/클래스 이름>
my_module.my_module_func()
from <모듈 이름> import <함수/변수/클래스1>, <함수/변수/클래스2>, ..., <함수/변수/클래스N>
from my_module import my_module_func, my_module_var
print(my_module_var)
from 모듈 import * 을 사용해도 되지만 권장하지않는다.
왜냐하면 local scope를 가지고 있는 다른 변수/함수/클래스 들과 이름 충돌이 날 수 있는데,
만일 이름 충돌이 일어났을 경우 알기가 쉽지 않을수 있기 때문입니다.
from my_module import my_func as f1
from my_module2 import my_func as f2
print(f1())
print(f2())
import 패키지.모듈
import package.mod1
from 패키지.모듈 import 변수
from 패키지.모듈 import 함수
from 패키지.모듈 import 클래스
from 패키지.모듈 import 변수, 함수, 클래스
from pkg.mod2 import func2
__init__.py
__init__.py
를 사용한다.__init__.py
가 있으면 패키지가 임포트 될 떄 __init__.py
파일의 코드들이 자동으로 실행 된다.__init__.py
로 할 수 있는 일1. Import 할때 경로의 총 길이 줄여주기
패키지에서 mod1의 func2 라는 함수를 import하기 위해서는 아래코드를 실행 하여야 한다.
하지만 __init__.py
에 먼저 import를 해주면
위 코드 처럼 모듈 불러오듯이 패키지를 불러 올 수 있다.
2. Package에서 import 할 수 있는 변수/함수/클래스 제한하기
__all__
변수를 지정해주면 된다.__all__
변수의 디폴트값은 모든 함수/변수/클래스 이다.__all__
변수를 따로 정의해 줌으로써 import 될 수 있는 요소들을 제한 할 수 있다.__all__
변수는 string 값의 요소를 가지고 있는 list이다.