모듈: 파이썬에서 변수나 함수, 클래스 등을 모아놓은 파일
## my_module.py
my_module_var = 7
def my_module_func():
return "Hello!"
class MyModuleClass:
pass
import <모듈 이름>
import my_module
<모듈 이름>.<모듈에서 사용하길 원하는 변수/함수/클래스 이름>
#함수 호출
my_module.my_module_func()
## main.py
import my_module
print(my_module.my_module_var)
my_module.my_module_func()
my_module_class = my_module.MyModuleClass()
from ~ import ~ 키워드를 사용하여 모듈을 불러들이는 경우 모듈 이름을 붙이지 않고 원하는 함수나 변수, 클래스를 호출할 수 있음
from <모듈 이름> import <함수/변수/클래스1>, <함수/변수/클래스2>, ..., <함수/변수/클래스N>
from my_module import my_module_func, my_module_var
print(my_module_var)
my_module_func()
from my_module import *
print(my_module_var)
my_module_func()
from my_module import my_func as f1
from my_module2 import my_func as f2
from my_module3 import function_with_name_too_long as f3
f1()
f2()
f3()
import my_module as m1
m1.my_module_func()
import pkg.mod1
from pkg.mod2 import func2
pkg.mod1.func2()
func2()
- Import 할때 경로의 총 길이 줄여주기
- Package에서 import 할 수 있는 변수/함수/클래스 제한하기
- 그 외 package가 import될때 꼭 먼저 실행되어야 하는 코드들
# pkg에서 mod1의 func2 라는 함수를 import 하여 사용하기 위해
import pkg.mod1
pkg.mod1.func2()
# __init__.py 파일을 통해 함수의 경로를 줄여주기
# __init__.py 파일에 먼저 한번 import
# __init__.py
from .mod1 import func2
# main.py
from pkg import func2
func2()
# __init__.py
from .mod1 import func2
from .mod2 import func3
__all__ = ['func2', 'func3']
# main.py
from pkg import *
func2()
func3()
func4() ## <== Error. func4 함수는 __all__ 에 정의되지 않았으므로 import 될 수 없음.
pip install Django