학습 목표
이번 강의에서는 파이썬의 모듈과 패키지를 활용하여 재사용 가능한 코드를 만드는 방법을 배웁니다. 모듈과 패키지를 효과적으로 사용하여 코드의 구조를 개선하고, 다른 프로젝트에서 쉽게 활용할 수 있는 방법을 익힐 것입니다.
개념 설명
모듈(Module)은 재사용 가능한 작은 코드 조각으로, 함수, 클래스, 변수 등을 포함할 수 있는 파이썬 파일입니다. 패키지(Package)는 여러 모듈을 그룹화한 디렉토리로, __init__.py
파일을 포함하여 패키지로 인식됩니다. 모듈과 패키지를 사용하면 코드의 재사용성을 높이고, 프로젝트를 구조적으로 관리할 수 있습니다.
모듈과 패키지 사용 예제
# my_math.py 모듈 생성
def add(a, b):
"""두 수의 합을 반환하는 함수"""
return a + b
def subtract(a, b):
"""두 수의 차를 반환하는 함수"""
return a - b
# my_string.py 모듈 생성
def concatenate(str1, str2):
"""두 문자열을 concatenate하는 함수"""
return str1 + str2
def uppercase(str_value):
"""문자열을 대문자로 변환하는 함수"""
return str_value.upper()
# my_package/
# ├── __init__.py
# ├── my_math.py
# └── my_string.py
# my_package/__init__.py
from .my_math import add, subtract
from .my_string import concatenate, uppercase
# main.py 메인 스크립트
from my_package import add, subtract, concatenate, uppercase
def main():
# 숫자 연산
print("2 + 3 =", add(2, 3)) # 5
print("10 - 4 =", subtract(10, 4)) # 6
# 문자열 연산
print(concatenate("Hello, ", "World!")) # "Hello, World!"
print(uppercase("hello")) # "HELLO"
if __name__ == "__main__":
main()
코드 설명
my_math.py
와my_string.py
는 각각 간단한 수학과 문자열 조작을 위한 모듈입니다.__init__.py
파일은 패키지를 초기화하고, 외부에서 패키지를 사용할 때 어떤 모듈을 임포트할지를 정의합니다.main.py
에서 패키지를 임포트하여 다양한 함수를 호출하고 결과를 출력합니다.
연습 문제
1. 사용자 정의 모듈을 만들어 원주율(π) 계산, 면적 계산 등에 관련된 함수를 정의해 보세요.
2. 패키지를 생성하고 그 안에 여러 관련된 모듈을 추가하여, 통계를 계산하는 프로그램을 작성해 보세요.
연습 문제 해답
# 원주율을 계산하는 모듈: my_geometry.py
import math
def circle_area(radius):
"""원을 계산하는 함수: πr²"""
return math.pi * (radius ** 2)
def circle_circumference(radius):
"""원의 둘레를 계산하는 함수: 2πr"""
return 2 * math.pi * radius
# 패키지 구조: my_statistics/
# ├── __init__.py
# ├── statistics.py
# └── my_geometry.py
# 패키지의 __init__.py 파일에서 모듈 불러오기
from .my_geometry import circle_area, circle_circumference
# 사용 예제
from my_geometry import circle_area, circle_circumference
def main():
radius = 5
print("반지름이", radius, "인 원의 면적:", circle_area(radius))
print("반지름이", radius, "인 원의 둘레:", circle_circumference(radius))
if __name__ == "__main__":
main()
### 설명
- **모듈과 패키지**를 활용하여 코드를 재사용 가능하게 만드는 방법을 자세히 설명합니다.
- 여러 기능을 관련 모듈에 분할하여 불필요한 코드 중복을 줄이고, 프로젝트를 조직적으로 관리하는 방법을 보여줍니다.
- **연습 문제**를 통해 사용자가 직접 모듈과 패키지를 작성하여 응용해 볼 수 있는 기회를 제공하며, 실습을 통해 이해도를 높일 수 있습니다.
0 댓글