Python 모듈 및 패키지: 코드 프로젝트 구성
Python 모듈과 패키지를 이해합니다. 파일을 가져오고, 대규모 프로젝트를 구성하고, 표준 라이브러리를 활용하고, 절대 가져오기와 상대 가져오기를 사용하는 방법을 알아보세요.
개요
애플리케이션이 커짐에 따라 모든 코드를 단일 파일에 보관하면 관리, 읽기 및 디버그가 불가능해집니다. Python은 코드를 모듈과 패키지로 구성하여 이 문제를 해결합니다. 모듈은 변수, 함수, 클래스 및 실행 가능한 명령문을 포함하는 단순한 Python 파일(`.py`로 끝남)입니다. 코드를 논리 모듈로 분할하면 쉽게 테스트하고 다양한 애플리케이션에서 공유할 수 있는 깔끔하고 재사용 가능한 코드베이스를 만들 수 있습니다.
한 모듈의 코드를 다른 모듈에서 사용하기 위해 Python은 `import` 키워드를 사용합니다. 전체 모듈을 가져오거나(예: `import math`), 특정 속성을 가져오거나(예: `from math import pi, sqrt`), 별칭으로 모듈을 가져와 코드를 간결하게 유지할 수 있습니다(예: `pandas를 pd로 가져오기`). Python의 가져오기 시스템은 가져오기를 해결하기 전에 현재 디렉터리부터 시작하여 설치 디렉터리와 표준 라이브러리가 뒤따르는 특정 경로 목록을 검색합니다.
패키지는 디렉터리 구조로 구성된 모듈 모음입니다. 디렉터리를 패키지로 정의하기 위해 전통적으로 `__init.py`라는 파일이 포함되어 있었습니다(그러나Python 3.3+의 네임스페이스 패키지에는 선택 사항임). 이 구조를 사용하면 관련 모듈을 단일 네임스페이스로 그룹화할 수 있습니다. 예를 들어 `database`라는 패키지에는 `connection.py` 및 `queries.py` 모듈이 포함될 수 있습니다. 점 표기법(`import data.connection`)을 사용하여 내용을 가져옵니다. 모듈과 패키지를 마스터하는 것은 확장 가능하고 프로덕션에 즉시 사용 가능한 Python 애플리케이션을 구성하는 데 핵심입니다.
코드 및 실행 출력
Python의 가져오기 시스템을 사용하여 수학 함수에 액세스하고 사용자 정의 별칭을 활용합니다.
import math
from math import sqrt as square_root
# Calculate mathematical constants and values
val = 16
result = square_root(val)
pi_value = math.pi
print(f"Square root of {val} is {result}")
print(f"Value of Pi: {pi_value:.4f}")
print(f"Cosine of 0 is {math.cos(0)}")Square root of 16 is 4.0
Value of Pi: 3.1416
Cosine of 0 is 1.0단계별 구현
- 경로 핸들러에서 비즈니스 로직 분할
- 애플리케이션 전반에 걸쳐 표준 라이브러리 유틸리티 활용
- 재사용 가능한 오픈 소스 라이브러리로 코드 게시
자주 묻는 질문
__init.py의 목적은 무엇입니까?
디렉터리를 Python 패키지로 초기화합니다. 또한 더 쉽게 가져올 수 있도록 패키지 수준에서 특정 하위 모듈이나 변수를 노출하는 데 사용할 수도 있습니다.
외부 모듈을 어떻게 설치하나요?
PyPI에서 패키지를 다운로드하고 설치하는 명령줄(예: pip 설치 요청)을 통해 Python의 패키지 관리자인 pip를 사용합니다.
관련 주제
권장 Python 리소스
관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.
Python에서 목록을 정렬하는 방법(오름차순 및 내림차순)
sort() 메서드와 sorted() 함수를 사용하여 Python에서 목록을 정렬하는 방법을 알아보세요. 사용자 정의 키 정렬 및 역순 예시를 살펴보세요.
Python 문자열 메서드 치트 시트
Python 문자열 조작에 대한 완전한 참조 가이드입니다. 문자열 속성의 서식 지정, 검색, 분할, 바꾸기 및 확인을 마스터합니다.
Python 대 JavaScript: 어떤 프로그래밍 언어가 가장 좋나요?
Python과 JavaScript를 포괄적으로 비교합니다. 구문 차이점, 성능, 사용 사례(백엔드와 프런트엔드) 및 코딩 예제를 살펴보세요.