본문 바로가기
프로그래밍/Python

[Python] 8. Python의 "모듈과 패키지"

by iwbap 2024. 6. 18.
728x90

Python 학습: 모듈과 패키지

Python은 코드의 재사용성을 높이기 위해 모듈과 패키지를 사용합니다. 모듈과 패키지를 통해 코드를 구조화하고, 효율적으로 관리할 수 있습니다. 이번 글에서는 모듈, 패키지, 표준 라이브러리에 대해 알아보겠습니다.


1. 모듈: 모듈 생성, import, from ... import

- 모듈 생성 : 모듈은 Python 파일(.py)로, 관련된 코드를 하나의 파일로 묶은 것입니다. 모듈을 사용하면 코드를 여러 파일로 분리하여 관리할 수 있습니다.

 

모듈 생성 예제 : 아래와 같은 my_module.py 파일을 생성합니다.

[python]
 
# my_module.py

def greet(name):
    return f"Hello, {name}!"

def add(a, b):
    return a + b
 
 

- 모듈 임포트 : 다른 파일에서 이 모듈을 사용하려면 import 키워드를 사용합니다.

 

import 사용 예제

[python]
 
# main.py

import my_module

print(my_module.greet("Alice"))  # Hello, Alice! 출력
print(my_module.add(3, 5))       # 8 출력
 
 

- from ... import 사용 : 모듈의 특정 함수나 클래스를 직접 임포트할 수도 있습니다.

 

from ... import 사용 예제:

[python]
 
# main.py

from my_module import greet, add

print(greet("Bob"))    # Hello, Bob! 출력
print(add(10, 20))     # 30 출력

2. 패키지: 패키지 구조, __init__.py

패키지 구조 : 패키지는 여러 모듈을 디렉터리 구조로 묶은 것입니다. 각 디렉터리는 __init__.py 파일을 포함하여 패키지로 인식됩니다. 패키지를 사용하면 더 큰 프로젝트를 체계적으로 관리할 수 있습니다.

 

패키지 예제

[markdown]
 
my_package/
    __init__.py
    module1.py
    module2.py
 
 

module1.py

[python]
 
# module1.py

def func1():
    return "Function 1"
 
 

module2.py

[python]
 
# module2.py

def func2():
    return "Function 2"
 
 

__init__.py : __init__.py 파일은 패키지를 초기화하는 데 사용됩니다. 빈 파일로 둘 수도 있고, 패키지를 초기화하는 코드를 포함할 수도 있습니다.

 

__init__.py 예제

[python]
 
# __init__.py

from .module1 import func1
from .module2 import func2
 

 

패키지 임포트 예제

[python]
 
# main.py

import my_package

print(my_package.func1())  # Function 1 출력
print(my_package.func2())  # Function 2 출력

3. 표준 라이브러리: os, sys, math, datetime 등

Python은 다양한 표준 라이브러리를 제공하여 여러 가지 기능을 쉽게 구현할 수 있습니다. 몇 가지 주요 표준 라이브러리를 살펴보겠습니다.

 

- os 모듈 : 운영 체제와 상호작용할 수 있는 기능을 제공합니다.

 

os 모듈 예제

[python]
 
import os

# 현재 작업 디렉토리 출력
print(os.getcwd())

# 새로운 디렉토리 생성
os.mkdir("new_dir")

# 파일 목록 출력
print(os.listdir("."))
 
 

- sys 모듈 : 파이썬 인터프리터와 상호작용할 수 있는 기능을 제공합니다.

 

sys 모듈 예제

[python]
 
import sys

# 명령 줄 인자 출력
print(sys.argv)

# 파이썬 버전 출력
print(sys.version)
 
 

- math 모듈 : 수학적 계산을 위한 기능을 제공합니다.

 

math 모듈 예제

[python]
 
import math

# 제곱근 계산
print(math.sqrt(16))

# 원주율
print(math.pi)

# 삼각 함수
print(math.sin(math.radians(90)))  # 1.0 출력
 
 

- datetime 모듈 : 날짜와 시간을 처리하는 기능을 제공합니다.

 

datetime 모듈 예제

[python]
 
import datetime

# 현재 날짜와 시간 출력
now = datetime.datetime.now()
print(now)

# 특정 날짜 생성
birthday = datetime.datetime(1990, 1, 1)
print(birthday)

# 날짜 차이 계산
diff = now - birthday
print(diff.days)
 

Python의 표준 라이브러리는 매우 풍부하며, 다양한 작업을 쉽게 수행할 수 있는 도구를 제공합니다. 문서화가 잘 되어 있어 필요한 기능을 찾아 사용하는 것도 매우 쉽습니다.


이 글에서는 Python의 모듈과 패키지, 그리고 주요 표준 라이브러리에 대해 알아보았습니다. 모듈과 패키지를 사용하면 코드를 더 체계적으로 관리할 수 있으며, 표준 라이브러리를 활용하면 많은 기능을 쉽게 구현할 수 있습니다. 다음 단계에서는 더 고급 기능과 외부 라이브러리 사용법을 학습해보세요. Happy Coding!

728x90