python
이 기사에서는 Python 패키지를 사용하여 코드 기반을 깨끗하고 효율적인 모듈로 나누는 방법을 배웁니다. 또한 Python 프로그램에서 자체 또는 타사 패키지를 가져오고 사용하는 방법을 배우게 됩니다.
우리는 일반적으로 컴퓨터의 모든 파일을 같은 위치에 저장하지 않습니다. 더 쉽게 액세스할 수 있도록 잘 구성된 디렉토리 계층 구조를 사용합니다.
유사한 파일이 동일한 디렉토리에 보관됩니다. 예를 들어 "음악 " 디렉토리. 이와 유사하게 Python에는 디렉토리용 패키지와 파일용 모듈이 있습니다.
우리의 응용 프로그램은 많은 모듈과 함께 크기가 커짐에 따라 하나의 패키지에 유사한 모듈을 배치하고 다른 패키지에 다른 모듈을 배치합니다. 이것은 프로젝트(프로그램)를 관리하기 쉽고 개념적으로 명확하게 만듭니다.
마찬가지로 디렉토리에 하위 디렉토리와 파일이 포함될 수 있듯이 Python 패키지에는 하위 패키지와 모듈이 포함될 수 있습니다.
디렉토리에는 __init__.py
이라는 파일이 있어야 합니다. 파이썬이 그것을 패키지로 간주하기 위해서. 이 파일은 비워둘 수 있지만 일반적으로 이 파일에 해당 패키지의 초기화 코드를 넣습니다.
다음은 예입니다. 게임을 개발한다고 가정해 봅시다. 패키지와 모듈의 가능한 구성은 아래 그림과 같습니다.
<그림> <시간>점(.) 연산자를 사용하여 패키지에서 모듈을 가져올 수 있습니다.
예를 들어 start
을 가져오려면 위의 예제에서 모듈은 다음과 같이 수행할 수 있습니다.
import Game.Level.start
이제 이 모듈에 select_difficulty()
이라는 함수가 포함되어 있으면 , 참조하려면 전체 이름을 사용해야 합니다.
Game.Level.start.select_difficulty(2)
이 구성이 길면 다음과 같이 패키지 접두사 없이 모듈을 가져올 수 있습니다.
from Game.Level import start
이제 다음과 같이 간단히 함수를 호출할 수 있습니다.
start.select_difficulty(2)
패키지 내의 모듈에서 필요한 함수(또는 클래스 또는 변수)만 가져오는 또 다른 방법은 다음과 같습니다.
from Game.Level.start import select_difficulty
이제 이 함수를 직접 호출할 수 있습니다.
select_difficulty(2)
더 쉽지만 이 방법은 권장되지 않습니다. 전체 네임스페이스를 사용하면 혼동을 방지하고 두 개의 동일한 식별자 이름이 충돌하는 것을 방지할 수 있습니다.
패키지를 가져오는 동안 Python은 sys.path
에 정의된 디렉토리 목록을 찾습니다. , 모듈 검색 경로와 유사합니다.
python
놓치신 경우:Python 2는 2020년 1월 1일부로 공식적으로 지원되지 않음 . 아직 Python 2.7을 사용 중이라면 지금 업그레이드하세요. . 실행 중인 버전이 확실하지 않은 경우 Python 버전을 확인하세요. 많은 패키지 유지 관리자가 Python 3으로 마이그레이션했습니다. 일부는 여전히 Python 2를 지원하고 다른 일부는 이미 Python 2 지원을 중단했습니다. Python 2 코드 기반에서 마이그레이션해야 하는 경우 Python 코드를 Python 3으로 마이그레이션하는 방법에 대한 가이드를 읽어보세요.
패키지는 이름 충돌을 방지하고 액세스를 제어하며 클래스, 인터페이스, 열거 및 주석의 검색/찾기 및 사용을 보다 쉽게 하기 위해 Java에서 사용됩니다. 패키지 액세스 보호 및 네임스페이스 관리를 제공하는 관련 유형(클래스, 인터페이스, 열거 및 주석)의 그룹으로 정의할 수 있습니다. Java의 기존 패키지 중 일부는 - java.lang - 기본 클래스 묶음 java.io - 입력 클래스, 출력 기능이 이 패키지에 번들되어 있습니다. 프로그래머는 자신의 패키지를 정의하여 클래스/인터페이스 등의 그룹을 묶을