산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

Python 패키지: 구조, 임포트, 모범 사례

Python 패키지

점점 커지는 코드베이스를 Python 패키지로 체계적으로 정리하고, 직접 만든 모듈이나 서드파티 모듈을 효율적으로 임포트하는 방법을 알아봅니다.

동영상: Python 패키지 – 코드 정리하기

패키지란 무엇인가?

디스크에서 파일을 폴더로 묶어 관리하듯, Python은 패키지를 사용해 관련된 모듈들을 그룹화합니다. 패키지는 단순히 __init__.py 파일을 포함하는 디렉터리입니다. 이 파일은 Python에게 해당 폴더를 네임스페이스로 취급하라고 알려줍니다.

프로젝트가 커질수록 비슷한 기능의 모듈들을 패키지로 묶으면 프로젝트를 관리하기 쉽고, 구조 자체가 문서화 역할을 합니다. 패키지는 서브패키지를 포함할 수 있으며, 이는 디렉터리가 중첩될 수 있는 것과 같은 원리입니다.

예를 들어 게임 프로젝트는 다음과 같은 구조를 가질 수 있습니다:

Python 패키지: 구조, 임포트, 모범 사례

패키지에서 모듈 임포트하기

모듈은 점(.) 표기법을 사용해 임포트합니다. Game/Level 패키지에서 start.py를 가져오려면 다음과 같이 작성합니다:

import Game.Level.start

start.py에 select_difficulty() 함수가 정의되어 있다면, 전체 네임스페이스를 사용해 호출합니다:

Game.Level.start.select_difficulty(2)

코드를 간결하게 하려면 모듈을 로컬 네임스페이스로 임포트할 수 있습니다:

from Game.Level import start

이제 select_difficulty를 다음과 같이 호출할 수 있습니다:

start.select_difficulty(2)

더 간결하게 함수를 직접 임포트할 수도 있습니다:

from Game.Level.start import select_difficulty

그러면 단순히 다음과 같이 호출 가능합니다:

select_difficulty(2)

간결하지만, 함수 단위로 임포트하면 서로 다른 모듈이 동일한 이름의 심볼을 노출할 때 네임스페이스 충돌이 발생할 수 있습니다. 전체 패키지 경로를 사용하면 네임스페이스가 명시적이 되어 더 안전합니다.

Python은 일반 모듈과 마찬가지로 sys.path에 나열된 디렉터리들을 검색해 패키지 임포트를 해결합니다.


python

  1. 파이썬 데이터 타입 마스터하기: 실전 가이드
  2. 파이썬 연산자 마스터하기: 종합 가이드
  3. 파이썬 pass 문 마스터하기: 실전 가이드
  4. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  5. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  6. Python 이터레이터: 작동 원리와 직접 만들기
  7. Python 클로저 이해하기: 중첩 함수가 변수 캡처하는 방법
  8. Python datetime 마스터하기: 날짜, 시간, 타임존 실전 가이드
  9. Python time.sleep() 완전 정복: 모범 사례, 멀티스레딩, 실전 예제
  10. 파이썬(Python) 개요: 고수준, 가독성, 인터랙티브, 객체지향