Подтвердить что ты не робот

В чем разница между модулем и библиотекой в ​​Python?

У меня есть опыт работы на Java, и я новичок в Python. Я хочу, чтобы я правильно понял терминологию Python, прежде чем идти дальше.

Мое понимание модуля : script, которое может быть импортировано многими сценариями, чтобы упростить чтение. Как и в java, у вас есть класс, и этот класс может быть импортирован многими другими классами.

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

Мой вопрос: Являются ли библиотеки такими пакетами, где у вас есть пакет, например. называется food, затем:

  • chocolate.py
  • sweets.py
  • biscuts.py

содержатся в пакете food?

Или библиотеки используют пакеты, поэтому, если бы у нас был другой пакет drink:

  • milk.py
  • juice.py

содержащихся в пакете. library содержит два пакета?

Кроме того, интерфейс прикладного программирования (API), как правило, содержит набор библиотек, находится в верхней части иерархии:

  • API
  • Библиотека
  • Пакет
  • Модуль
  • Script

Итак, API будет содержать все от 2-5?

4b9b3361

Ответ 1

Из Учебник Python - Модули

  • Модуль:

    Модуль - это файл, содержащий определения и инструкции Python. Имя файла - это имя модуля с добавленным суффиксом .py.

  • Пакет:

    Пакеты - это способ структурирования пространства имен модулей Pythons с использованием имен "пунктирных модулей".

Если вы прочитали документацию для оператора import, введите более подробную информацию, например:

Python имеет только один тип объекта модуля, и все модули этого, независимо от того, реализован ли модуль в Python, C или что-то другое. Чтобы помочь организовать модули и предоставить имена иерархия, Python имеет концепцию пакетов.

Вы можете думать о пакетах как о каталогах файловой системы и модули как файлы в каталогах, но не принимайте эту аналогию в буквальном смысле, поскольку пакеты и модули не должны исходить из файла система. Для целей этой документации хорошо используйте это удобная аналогия каталогов и файлов. Как файловая система каталоги, пакеты организованы иерархически, и пакеты могут сами по себе содержат подпакеты, а также регулярные модули.

Важно помнить, что все пакеты являются модулями, но не все модули являются пакетами. Или по-другому, пакеты - это просто специальный вид модуля. В частности, любой модуль, содержащий Атрибут __path__ считается пакетом.

Следовательно, термин module относится к определенному объекту: это класс, экземпляры которого являются объектами module, которые вы используете в программах python. Он также по аналогии используется для ссылки на файл в файловой системе, из которого создаются эти экземпляры.

Термин script используется для ссылки на модуль, цель которого должна быть выполнена. Он имеет то же значение, что и "программа" или "приложение", но обычно используется для описания простых и малых программ (т.е. Одного файла с не более чем сотнями строк). Запись script занимает минуты или несколько часов.

Термин library - это просто общий термин для кучи кода, который был разработан с целью использования многими приложениями. Он предоставляет некоторые общие функции, которые могут использоваться конкретными приложениями.

Когда модуль/пакет/что-то еще "публикуется", люди часто ссылаются на него как на библиотеку. Часто библиотеки содержат пакет или несколько связанных пакетов, но это может быть даже один модуль.

Библиотеки обычно не предоставляют каких-либо конкретных функций, т.е. вы не можете "запускать библиотеку".

API может иметь разные значения в зависимости от контекста. Например:

  • он может определить протокол, такой как API DB или буферный протокол .
  • он может определить, как взаимодействовать с приложением (например, Python/C API)
  • когда это связано с библиотекой/пакетом, это просто интерфейс, предоставляемый этой библиотекой для ее функциональности (набор функций/классов/констант и т.д.).

В любом случае API не является кодом python. Это описание, которое может быть более или менее формальным.

Ответ 2

Только пакет и модуль имеют четко определенный смысл, свойственный Python.

  • API не является совокупностью кода как такового - это скорее "протокол" "спецификация того, как различные части (обычно библиотеки) общаются друг с другом. В python есть несколько известных" стандартных "API. Например. API БД

  • По-моему, библиотека - это что-то, что не является приложением - в python библиотека является модулем - обычно с подмодулями. Объем библиотеки довольно переменный - например, backport collections.OrderedDict для py < 2.7

  • A package - это набор модулей python под общим пространством имен. На практике один создается путем размещения нескольких модулей python в каталоге со специальным модулем __init__.py (файл).

  • A module - это один файл кода python, предназначенный для импорта. Это немного упрощает, так как на практике довольно много модулей обнаруживают, когда они запускаются как script и делают что-то особенное в этом случае.

  • A script - это один файл кода python, предназначенный для выполнения в качестве основной программы.

  • Если у вас есть набор кода, который охватывает несколько файлов, у вас, вероятно, есть приложение, а не script.