: 독립적인 기능을 가지고 재사용 가능한 프로그램 단위
→ 이러한 module이 모이면 library 가 됨
(재사용 가능한 함수, 클래스등을 작성한 소스 파)
: 모듈들을 모아 놓은 것 (python에서는 = library)
python 3.3 이전 버전은 package 디렉토리에 init.py 파일을 그 디렉토리에 반드시 위치시켜야 한다.
- 3.3 이후에는 위치시킬 필요는 없지만 package안의 모듈들의 import 관련 설정을 해야 하는 경우에는
__init__.py
에 작성하고 위치시킨다.
: 파이썬 모듈 파일에 정의된 변수, 함수, 클래스들을 사용하기 위해 파이썬 실행환경에 등록하는 작업
→ 다른 모듈에 있는 것을 사용하기위해서는 import 필수
→ 모듈 import 시 그 모듈 이름을 namespace로 하여 등록
📍 구문 `[from 사용할 것의 경로] import 사용할 것 [as 별칭] [, 사용할 것..]`namespace
- 여러개의 객체(존재하는 무언가)를 하나로 묶어 주면서 구분자 역할을 하는 이름을 주는 것을 namespace라고 한다.
- namespace를 이용해 각 그룹들의 객체들을 구분할 수 있다. 그래서 같은 이름의 객체들을 사용할 수 있다.
- 파이썬에서는 모듈에 정의된 변수, 함수, 클래스 들을 실행환경에 등록할 때 모듈명을 namespace로 묶어서 등록한다.
[ ] : 생략 가능한 구문
→ 사용 할 것: 모듈, 모듈안에 정의된 변수, 함수, 클래스
import 모듈
하나의 모듈 import.import 모듈as 별칭# namespace의 이름을 모듈명이 아니라 별칭으로 지정한다.
import 모듈_1, 모듈_2# 여러개 모듈 import.','를 구분자로 나열한다.ex)
import test_module import my_moduleas mm # test_module의 hello() 함수 호출시test_module.hello() # my_module은 mm 별칭을 지정했으므로 mm을 namespace로 사용한다.p= mm.Person('홍길동', 30)# my_module의 Person 클래스 객체 생성
from 모듈import 함수
# 함수/클래스가 있는 모듈과 함수를 분리해서 import한다.from 모듈import 클래스
from 모듈import 함수_1, 함수_2, 클래스
from 모듈import*
패키지가 계층구조로 되있을 경우 .
으로 이용해 나열
→ from Root패키지.Sub패키지1.Sub패키지2.모듈 import 함수
→ from Root패키지.Sub패키지1.Sub패키지2.모듈 import 클래스
→ package는 import 불가
*
를 이용하면 그 모듈의 모든 함수/클래스들을 현재 실행중인 namespace에 추가해 사용할 수 있게 해준다. 이 방식은 이름 충돌의 가능성이 있기때문에 추천되지 않음
import 모듈
구문을 사용하면 파이썬 실행 환경은 모듈을 아래와 같은 경로로 찾음
- 현재 실행중인 모듈(import 구문을 사용한 모듈)이 있는 경로
- 파이썬 실행환경에 등록된 경로
import sys # 표준모듈 sys
print(sys.path) # 모듈을 찾는 경로를 저장한 list
→ 위의 경로 이외에 파이썬 모듈은 PYTHONPATH 환경변수에 그 디렉토리 경로를 등록
> sys.path 에 추가
(사용할 때 마다 추가해야 함)
> 운영체제 환경변수에 등록
(한번만 하면 됨)
sys.path
→ 모듈을 찾는 경로
python 모듈.py
로 실행된 모듈__name__
내장 전역변수if __name__== '__main__':
# 메인모듈일 때만 실행할 코드 블록
ex) calculater 라는 모듈 생성
%%writefile calculater.py
# 사칙연산 모듈
def minus(n1, n2):
return n1 - n2
def plus(n1, n2):
return n1 + n2
def multiply(n1, n2):
return n1 * n2
def devide(n1, n2):
return n1 / n2
if __name__ == "__name__":
# 아래 코드는 main모듈로 실행 될 때만 실행
print("모듈이름")
print(__main__) # 파이썬 실행환경이 제공하는 모듈의 이름을 저장하는 변수
r1 = plus(10, 20)
r2 = minus(100, 20)
r3 = multiply(5,7)
r4 = devide(10, 2)
print(r1, r2, r3, r4)
# calculater라는 모듈을 cal이라고 명명
import calculater as cal
# import가 안되면 restart하고 다시 run 해보기
# (import는 한번만 실행 되기 때문)
import calculater as cal