English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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, например:Путь поиска модулей.