1. 모듈
모듈은 함수나 변수 또는 클래스를 모아 놓은 파일이다.
하나의 모듈은 보통 하나의 .py 파일로 이루어져 있다.
모듈을 사용하면 코드의 재사용성, 유지보수의 용이성이 높아진다.
모듈은 3가지로 나뉘다.
- 표준 모듈: 파이썬과 함께 설치되는 모듈로, 파이썬 표준 라이브러리에 포함
- 서드 파티 모듈: 다른 개발자들이 만들어 배포하는 모듈로, pip 등을 통해 설치할 수 있다.
- 사용자 정의 모듈: 사용자가 직접 작성한 모듈로, 특정 프로젝트에 특화된 기능을 포함할 수 있다.
1.1 모듈의 생성 및 사용
1.1.1 모듈 파일 생성
.py 확장자를 가진 파일을 생성합니다. my_module.py 라는 이름으로 진행 하겠습니다. 파일을 만들었다면 코드를 작성합니다.
# my_module.py 파일 내용
def say_hello(name):
print(f"안녕, {name}!")
1.1.2 모듈 import하기
모듈을 사용하고자 하는 파일에서 import 문을 사용하여 모듈을 불러온다.
import my_module
1.1.3 모듈 내용 사용하기
모듈을 불러왔다면, 모듈 내에 정의된 함수, 변수, 클래스 등을 모듈 이름을 사용하여 접근할 수 있다.
my_module.say_hello("세상") # 안녕, 세상
1.2. 모듈의 다양한 사용 방법
1.2.1 특정 항목만 import 하기
모듈에서 특정 함수나 변수만 직접 import 하여 사용할 수 있다.
from my_module import say_hello
say_hello("파이썬")
1.2.2 별칭 사용하기
모듈이나 모듈 내의 항목에 별칭(alias)을 붙여서 사용할 수 있다.
import my_module as mm
mm.say_hello("별칭")
1.3 표준 모듈
표준 모듈은 파이썬과 함께 설치되는 모듈이다.
표준 라이브러리에 포함되어 있다. 몇 개만 간단하게 살펴보자
1.3.1 OS 모듈
OS모듈은 운영 체제와 상호 작용하기 위한 다양한 기능을 제공한다.
파일 및 디렉토리 생성, 삭제, 수정 등 다양한 것이 가능하다.
import os
# 현재 작업 디렉토리 얻기
current_dir = os.getcwd()
print(current_dir)
# 환경 변수 얻기
path_env = os.environ.get('PATH')
print(path_env)
1.3.2 sys 모듈
sys 모듈은 인터프리터와 관련된 변수와 함수를 제공한다.
명령줄 인수에 접근 또는 파이썬 인터프리터 버전 정보 얻기, 최대 재귀 깊이와 같은 시스템 관련 설정 조정 가능
import sys
# 명령줄 인수 출력
print(sys.argv)
# 파이썬 인터프리터 종료
sys.exit()
1.3.3 datetime 모듈
날짜와 시간을 다루는 클래스를 제공한다.
from datetime import datetime
# 현재 날짜와 시간 얻기
now = datetime.now()
print(now)
# 특정 날짜와 시간 생성
dt = datetime(2020, 1, 1)
print(dt)
1.3.4 json 모듈
JSON 데이터 형식으로 인코딩하거나 디코딩하는 함수를 제공한다.
from datetime import datetime
# 현재 날짜와 시간 얻기
now = datetime.now()
print(now)
# 특정 날짜와 시간 생성
dt = datetime(2020, 1, 1)
print(dt)
이 외에도 re (정규 표현식), math (수학 함수), random (난수 생성), urllib (URL 처리), sqlite3 (SQLite 데이터베이스 접근) 등 다양한 표준 모듈이 존재한다.
2. 패키지
모듈을 디렉토리 구조로 조직화한 것이 패키지이다.
패키지는 모듈들을 포함하는 디렉토리로, init.py 파일이 있어야 한다.
2.1 패키지 생성
패키지를 생성하기 위해서 패키지 이름으로 디렉토리를 생성한다.
해당 디렉토리 내에 init.py 파일과 하나 이상의 모듈을 추가한다.
mypackage/
│ __init__.py
│ module1.py
│ module2.py
2.2 패키지 사용
패키지를 사용하기 위해서 import 문을 사용하여 해당 패키지나 패키지 내의 모듈을 가져온다.
# 패키지 전체 임포트
import mypackage
# 패키지 내 특정 모듈 임포트
from mypackage import module1
# 패키지 내 특정 함수 임포트
from mypackage.module1 import my_function
2.3 서브 패키지
패키지 내에 또 다른 패키지를 포함시켜서 서브 패키지를 만들 수 있다.
mypackage/
│ __init__.py
│ module1.py
│ module2.py
│
└───subpackage/
│ __init__.py
│ module3.py
from mypackage.subpackage import module3
'Language > Python' 카테고리의 다른 글
[Python] 클래스 (1/2) (0) | 2024.04.27 |
---|---|
[Python] 패키지 설치 및 관리 (0) | 2024.04.27 |
[Python] 예외 처리 (0) | 2024.04.27 |
[Python] 파일 입출력 (0) | 2024.04.27 |
[Python] 함수 (0) | 2024.04.24 |