Ответ 1
-
Модуль:
Модуль - это файл, содержащий определения и инструкции Python. Имя файла - это имя модуля с добавленным суффиксом
.py
. -
Пакет:
Пакеты - это способ структурирования пространства имен модулей Pythons с использованием имен "пунктирных модулей".
Если вы прочитали документацию для оператора import
, введите более подробную информацию, например:
Python имеет только один тип объекта модуля, и все модули этого, независимо от того, реализован ли модуль в Python, C или что-то другое. Чтобы помочь организовать модули и предоставить имена иерархия, Python имеет концепцию пакетов.
Вы можете думать о пакетах как о каталогах файловой системы и модули как файлы в каталогах, но не принимайте эту аналогию в буквальном смысле, поскольку пакеты и модули не должны исходить из файла система. Для целей этой документации хорошо используйте это удобная аналогия каталогов и файлов. Как файловая система каталоги, пакеты организованы иерархически, и пакеты могут сами по себе содержат подпакеты, а также регулярные модули.
Важно помнить, что все пакеты являются модулями, но не все модули являются пакетами. Или по-другому, пакеты - это просто специальный вид модуля. В частности, любой модуль, содержащий Атрибут
__path__
считается пакетом.
Следовательно, термин module
относится к определенному объекту: это класс, экземпляры которого являются объектами module
, которые вы используете в программах python. Он также по аналогии используется для ссылки на файл в файловой системе, из которого создаются эти экземпляры.
Термин script используется для ссылки на модуль, цель которого должна быть выполнена. Он имеет то же значение, что и "программа" или "приложение", но обычно используется для описания простых и малых программ (т.е. Одного файла с не более чем сотнями строк). Запись script занимает минуты или несколько часов.
Термин library - это просто общий термин для кучи кода, который был разработан с целью использования многими приложениями. Он предоставляет некоторые общие функции, которые могут использоваться конкретными приложениями.
Когда модуль/пакет/что-то еще "публикуется", люди часто ссылаются на него как на библиотеку. Часто библиотеки содержат пакет или несколько связанных пакетов, но это может быть даже один модуль.
Библиотеки обычно не предоставляют каких-либо конкретных функций, т.е. вы не можете "запускать библиотеку".
API может иметь разные значения в зависимости от контекста. Например:
- он может определить протокол, такой как API DB или буферный протокол .
- он может определить, как взаимодействовать с приложением (например,
Python/C API
) - когда это связано с библиотекой/пакетом, это просто интерфейс, предоставляемый этой библиотекой для ее функциональности (набор функций/классов/констант и т.д.).
В любом случае API не является кодом python. Это описание, которое может быть более или менее формальным.