English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python Basic Tutorial

Python Flow Control

Функции в Python

Типы данных в Python

Python File Operations

Python Objects and Classes

Python Date and Time

Advanced Knowledge of Python

Python Reference Manual

Пакеты (Package) в Python

In this article, you will learn to use Python packages to divide the code library into clean, efficient modules. In addition, you will also learn how to import and use your own or third-party software packages in Python programs.

What is a package (Package)?

we usually do not store all files in the same place. We use a well-organized directory hierarchy for easy access.

.similar files are stored in the same directory, for example, we can keep all songs in the "music" directory. Similarly, Python has packages for directories and for filesМодуль.

С увеличением规模的 нашего приложения и наличия множества модулей мы помещаем похожие модули в один пакет, а различные модули в разные пакеты. Это делает проект (программу) легко управляемым и концептуально ясным.

Аналогично, так как каталоги могут содержать подкаталоги и файлы, пакеты Python могут иметь подпакеты и модули.

Каталоги должны содержать файл __init__.py, чтобы Python мог рассматривать его как пакет. Этот файл можно оставить пустым, но обычно в этот файл помещается инициализационный код пакета.

Это пример. Предположим, что мы разрабатываем игру, возможная структура пакета и модулей может выглядеть так:

Импорт модулей из пакета

Мы можем использовать оператор точек (.) для импорта модулей из пакета.

Например, чтобы импортировать модуль 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, например:Путь поиска модулей.