Search  
Always will be ready notify the world about expectations as easy as possible: job change page
24 марта

Модуль, пакет, библиотека, фреймворк: разбираемся в разнице

Модуль, пакет, библиотека, фреймворк: разбираемся в разнице
Source:
Views:
1299

Разобрали ключевые отличия фреймворка от библиотеки и другими типами импортируемых объектов в Python с применением диаграмм.

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

Запутаться в них новичку легко. Так что в этой статье я объясню, в чем разница между ними. Условно можно обозначить их взаимоотношения с помощью этой диаграммы:

Модуль, пакет, библиотека, фреймворк: разбираемся в разнице


Модуль (Module)

Модуль в Python — это логически обособленный сниппет в отдельном файле .py. Если вы хотите порядка в своем коде, рекомендую их использовать.

Достоинства модулей в том, что они:

  • помогают сосредоточиться на одной небольшой части задаче;.
  • сводят на нет дублирование за счет переиспользования;
  • минимизируют вероятность конфликта имен.

Давайте разберем их на примере. Создадим функцию приветствия:

def welcome_message(course):
    print("Спасибо, что выбрали курс «" + course + "». Скоро вы получите письмо с расписанием.")

Сохранив ее в welcome.py, мы создадим модуль. Если welcome_message() понадобился, его импортируем директивой:

import welcome
welcome.welcome_message("Основы Data Science")

Сообщение будет выглядеть так:

Спасибо, что выбрали курс «Основы Data Science». Скоро вы получите письмо с расписанием.

Обычно в модуле определяется множество разных элементов. Но мы можем импортировать только одну конкретную функцию:

from welcome import welcome_message

Если у вас есть опыт работы с Python, то вы наверняка использовали модули re, datetime и проч.

Пакет (Package)

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

Это каталоги модулей с иерархической структурой пространства имен. Точно так же, как мы раскладываем файлы на жестком диске по папкам и субдиректориям, можно организовать модули в пакеты и «подпакеты» (subpackages).

Пакет должен содержать файл с именем __init__.py, который и позволяет использовать каталог.

Модуль, пакет, библиотека, фреймворк: разбираемся в разнице

Пакет Writing (писательство) и его модули Books (книги) и Article (статьи)

В мире пакетов для Python есть немало «звезд», о которых вы наверняка слышали:

  • numpy — для научных вычислений;
  • pandas — для обработки табличных данных;
  • pytest — для тестирования.

Если классическое веб-приложение активно использует всевозможные компоненты, то в Data Science скачок на пакеты происходит на первых же уроках, и модули проходят вскользь.

В Python установленные пакеты можно посмотреть командой:

pip list

Библиотека (Library)

Это объект еще выше уровнем: он содержит связанные модули и/или пакеты. Часто «библиотеки» и «пакеты» выступают синонимами, потому что и те, и другие содержат модули и «подпакеты» (subpackages).

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

  • Matplotlib — для визуализации данных;
  • PyTorch — для глубокого обучения;
  • BeautifulSoup4 — для парсинга.

Установка библиотек Python также производится командой pip:

pip install pytorch

Фреймворк (Framework)

Также набор модулей и пакетов, которые и ускоряют процесс программирования. Но более сложный и с архитектурой приложения.

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

Известные представители класса – это:

  • Django — фреймворк Python для сайта;
  • Flask для легковесных демо-проектов;
  • Bottle для создания API.

Заключение

Теперь вы знаете, в чем отличия модуля от библиотеки и от фреймворка. Более того, на старте новичку стоит понимать лишь отличие модуля от пакета и библиотек. А фреймворки придут в код позже, бесшовно и не спутают карты.

Similar
Jul 30
Author: Emer Kurbegovic
Azure Cosmos DB is a globally distributed, multi-model database service provided by Microsoft Azure. It supports multiple data models, including document, key-value, graph, and column-family data models. In this article, we’ll explore how to add and retrieve data from Azure...
Jul 4
Introduction In the world of making websites look good, pictures, especially images, are super important. They make up a big part (60%!) of what you see online, making websites more interesting and helping to share information. Among the many tools...
Aug 28
Author: Tushar Kanjariya
Step-by-step guide to creating custom context menus (right-click menu) in JavaScript. Hello Developers 👋, A context menu, also known as a right-click menu or pop-up menu, is a menu that appears when the user performs a specific action, such as...
Dec 29, 2023
Content Index Poll and Survey: Definition Poll and Survey: Examples     2.1. Poll: Election poll     2.2. Survey: Customer satisfaction survey Poll vs Survey     3.1. When to use poll     3.2. When to use survey Poll and Survey: Definition Poll: A poll is...
Send message
Type
Email
Your name
*Message