1. 모듈(Module)
파이썬의 모듈은 파이썬 코드 파일로, 함수, 클래스, 변수 등을 포함할 수 있는 독립적인 코드 블록으로, 모듈을 사용하면 코드의 재사용성을 높이고, 관련된 기능을 그룹화할 수 있습니다. 모듈은 단순히 파이썬 파일(.py)로 생성됩니다.
def greet(name):
return f"Hello, ${name}!"
PI = 3.14159
모듈을 사용하려면 import 문을 사용해 모듈을 가져와야합니다.
import module;
print(module.greet("JackSon")) # Hello, JackSon
print(module.PI) # 3.14159
전체 모듈을 가져오고 모듈의 특정 함수 또는 변수를 가져오거나 모듈의 이름을 가져올 수 있습니다.
- 전체 모듈 가져오기
import module
- 모듈의 특정 함수 또는 변수 가져오기:
from module import greet
print(greet("King")) # Hello, King!!
- 모듈의 이름 변경해 가져오기:
import module as mm
print (mm.greet("Chain")) # Hello, Chain
2. 패키지(Package)
패키지는 여러 모듈을 포함하는 디렉토리로, 관련된 모듈들을 그룹화해 관리할 수 있습니다. 패기지는 __init__.py라는 파일을 포함하여, 이 파일이 있는 디렉토리 패키지로 인식됩니다.
mypackage/
__init__.py
module1.py
module2.py
- __init__.py: 패키지가 초기화될 때 실행되는 코드가 포함될 수 있고, 비워둘 수 있음
- module1.py, module2.py: 각각의 모듈 파일
# mypackage/module1.py
def func1():
return "Function 1 from Module 1"
# mypackage/module2.py
def func2():
return "Function 2 from Module 2"
패키지를 사용하려면 모듈을 가져오는 것과 유사한 방식입니다.
# main.py
from mypackage import module1, module2
print(module1.func1()) # Function 1 from Module 1
print(module2.func2()) # Function 2 from Module 2
패키지 안에 다른 패키지를 만들 수 있습니다. 예를 들어 다음과 같은 폴더 구조를 가집니다.
mypackage/
__init__.py
subpackage/
__init__.py
submodule.py
이 경우, 서브 패키지의 모듈을 가져오는 방법은 다음과 같습니다. 우선 서브 모듈을 작성해보겠습니다. submodule.py에 다음 코드를 입력해 함수를 추가해줍니다.
# mypackage/subpackage/submodule.py
def sub_function():
return "Hello from submodule!"
서브패키지를 가져오기 위한 방법은 여러가지가 있습니다.
- 전체 서브패키지 가져오기
# main.py
from mypackage import module1, module2
from mypackage.subpackage import submodule
print(module1.func1()) # Function 1 from Module 1
print(module2.func2()) # Function 2 from Module 2
print(submodule.sub_function()) # Hello from submodule!
- 서브모듈의 특정 함수 가져오기
# mypackage/subpackage/submodule.py
def sub_function():
return "Hello from submodule!"
def sub_thank():
return "Thank you!"
# main.py
from mypackage.subpackage.submodule import sub_thank
print(sub_thank()) # Thank you!
- 패키지 전체 불러오기
서브패키지를 포함한 패키지 전체를 가져올 수 있습니다.
# mypackage/__init__.py
from .module1 import *
from .subpackage import submodule
# main.py
import mypackage
print(mypackage.submodule.sub_function()) # Hello from submodule!
- 서브패키지의 서브패키지 가져오기
서브패키지 안에 또다른 서브패키지가 있을 경우 같은 방식으로 가져올 수 있습니다.
mypackage/
├── subpackage/
│ └── subsubpackage/
│ ├── __init__.py
│ └── subsubmodule.py
이 경우, subsubmodule.py를 다음과 같이 가져올 수 있습니다.
# main.py
from mypackage.subpackage.subsubpackage import subsubmodule
print(subsubmodule.sub_thank()) # Thank you
print(subsubmodule.sub_hello()) # Hello from subsubmodule
# subsubmodule.py
def sub_hello():
return "Hello from subsubmodule!"
def sub_thank():
return "Thank you!"
GitHub - Koras02/python-blog
Contribute to Koras02/python-blog development by creating an account on GitHub.
github.com
'Back-End > Python' 카테고리의 다른 글
[Python] 7. 객체지향 프로그래밍 (0) | 2025.02.28 |
---|---|
[Python] 6. 파일 입출력 (0) | 2025.02.27 |
[Python] 4.함수(Function) (0) | 2025.02.22 |
[Python] 3. Python의 자료구조 (0) | 2025.02.16 |
[Python] 2. Python의 제어 흐름 도구(for, range(), if, pass, match, else, break continue) (0) | 2025.02.12 |