Python은 모듈(module)과 패키지(package)를 통해 코드를 논리적으로 분리하고 재사용할 수 있게 해줍니다.
import, from...import...,as 키워드다른 파이썬 파일(모듈)의 모든 기능을 가져올 때 사용합니다.
python
import math
print(math.sqrt(16)) #4.0
모듈 내 특정 함수나 클래스만 선택적으로 가져올 수 잇습니다.
python
from math import sqrt
print(sqrt(25)) #5.0
모듈이나 함수 이름이 길거나 이름 충돌이 날 때 별칭(alias)을 지정합니다.
python
import numpy as np
form math import factorial as fact
print(np.array([1, 2, 3]))
print(fact(5)) # 120
Python은 모듈을 로딩할 때 여러 디렉토리를 순차적으로 탐색합니다. 이 경로들을 확인하려면 sys 모듈의 path 속성을 확인합니다.
python
import sys
for p in sys.path:
print(p)
출력 결과에는 현재 디렉토리, 표준 라이브러리 경로, site-package 등이 포함됩니다.
한 번 import된 모듈은 재시작 전까지 다시 로딩되지 않음. 수정한 내용을 반영하려면 importlib.reload()
python
import my_module
import importlib
importlib.reload(my_module)
python
import math
print(dir(math))
python
x = 10
y = [1, 2, 3]
print(dir())
예시 구조:
my_package/
│
├── init.py
├── module1.py
├── module2.py
python
# 구조: my_package/module1.py
from my_package import module1
module1.my_function()
또는 모듈 내 개별 함수만 가져올 수도 있습니다.
python
from my_package.module1 import my_function
my_function()
| 키워드 | 설명 |
|---|---|
import | 전체 모듈 가져오기 |
from import | 모듈 내 일부 요소만 가져오기 |
as | 별칭 지정 |
sys.path | 모듈 탐색 경로 |
reload() | 수정된 모듈 다시 불러오기 |
dir() | 객체/모듈에 포함된 이름 리스트 확인 |
패키지 | 모듈들을 디렉토리로 구조화한 형태 |
마무리
이번에는 모듈&시리즈에 대해서 학습하였습니다. 다음 시리즈에서는 예외처리를 중심으로 학습해보겠습니다.