반응형
패키지(Package)
패키지란?
패키지는 모듈들을 모아 놓은 디렉토리를 뜻합니다.
shapes(디렉토리) | shapes/area.py | shapes/volume.py |
__init__.py area.py volume.py |
PI = 3.14 # 원의 면적을 구해 주는 함수 def circle(radius): return PI * radius * radius # 정사각형의 면적을 구해 주는 함수 def square(length): return length * length |
PI = 3.14 # 구의 부피를 구해 주는 함수 def sphere(radius): return (4/3) * PI * radius * radius * radius # 정육면체의 부피를 구해 주는 함수 def cube(length): return length * length * length |
패키지는 일반 디렉토리와 똑같은데, 안에 __init__.py 라는 파일이 있습니다.
패키지 임포트
모듈과 비슷하게 패키지 안에 있는 내용을 가져올 때도 import 키워드를 사용합니다.
import <package.module>
run.py |
import shapes.volume print(shapes.volume.cube(3)) |
이렇게 패키지 안에 있는 모듈을 가져올 수 있습니다.
패키지나 모듈 안에 있는 것은 항상 .을 이용해서 접근합니다.
import <package>
run.py |
import shapes print(shapes.volume.cube(3)) # 오류 |
이렇게 패키지 자체를 임포트할 수도 있는데, 그러면 패키지 안에 있는 내용들은 임포트되지 않습니다.
(패키지 안에 있는 모듈도 같이 임포트하려면 패키지의 init 파일을 활용해야 합니다.)
그래서 위 코드는 오류가 납니다.
참고로 import ...방식을 써서는 모듈의 함수나 변수를 바로 가져올 수 없습니다.
run.py |
import shapes.volume.cube # 오류 |
import ...방식으로는 패키지나 모듈만 임포트할 수 있습니다.
from <package.module> import <member(s)>
전처럼 모듈 안에 있는 변수나 함수를 가져올 수도 있습니다.
run.py |
from shapes.volume import cube print(cube(3)) |
반응형
'Python' 카테고리의 다른 글
[Python] 스탠다드 라이브러리 vs 외부 라이브러리 (0) | 2021.06.28 |
---|---|
[Python]__init__파일 (0) | 2021.06.25 |
[Python]스크립트와 모듈 정리 (0) | 2021.06.21 |
[Python]유용한 스탠다드 모듈들 (0) | 2021.06.20 |
[Python]모듈(Module) (0) | 2021.06.19 |