파이썬에서 모듈은 변수나 함수 그리고 클래스 등을 모아놓은 파일이다.
이미 만들어진 모듈을 사용하거나 직접 만들어서 사용이 가능하다.
## my_module.py
my_module_var = 7
def my_module_func():
return "Hello!"
class MyModuleClass:
pass
그 후 다른파일에서 불러와 사용하면 된다.
<import>
# import 모듈이름
import my_module # 파일확장자 .py는 제외
원하는 모듈을 import 한 후에는, 다음과 같이 모듈의 원하는 변수/함수/클래스를 사용 가능
import my_module
#모듈이름.원하는 함수/변수/클래스
my_module.my_module_var
print(my_module.my_module_var)
>>> 7
모듈이름 없이 바로 함수, 변수, 클래스 등등 사용 가능하다.
# from 모듈이름 import <함수/변수/클래스1>, <함수/변수/클래스2>, ..., <함수/변수/클래스N>
from my_module import my_module_func, my_module_var
print(my_module_var)
print(my_module_func())
>>> 7
>>> "Hello!"
# "*" 을 사용하면 해당 모듈의 모든 요소가 import 된다.
from my_module import *
print(my_module_var)
>>> 7
하지만 *
사용을 권장하지 않음
왜냐하면 local scope를 가지고 있는 다른 변수/함수/클래스 들과 이름 충돌이 날 수 있는데, 만일 이름 충돌이 일어났을 경우 알기가 쉽지 않을수 있기 때문이다.
예를 들어 동일한 이름의 함수가 있거나 이름이 너무 길 때 새로운 이름을 정해줄 수 있다.
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()
모듈을 묶어서 관리하는 패키지
dot notation(.) 으로 해당 package의 원하는 모듈을 import
import pkg.mod1
from pkg.mod2 import func2
pkg.mod1.func2()
func2()
파이썬은 __init__.py
파일을 통해 package 초기 설정을 가능하게 해준다.
Package 안에 __init__.py
파일이 있으면 package가 import 될때 __init__.py
파일의 코드들이 자동으로 실행된다.
다른 사람이 만든 package를 import 하여 사용하기 위해서는 먼저 package를 설치를 해야 한다.
예를 들어, Django 라는 package를 사용하기 위해서는
pip
라는 툴을 사용하면 된다.
터미널로 이동 후
pip install Django