Короткий ответ
Модуль — это отдельный файл с кодом на Python, содержимое которого переиспользуют через оператор import. Пакет — каталог, где хранится несколько связанных модулей; он структурирует код и служит пространством имён. Чтобы каталог считался пакетом, в нём должен быть файл __init__.py.
Как это работает подробнее
Модули и пакеты позволяют разбивать большую программу на логические части, упрощая разработку, тестирование и поиск ошибок.
- Модуль. Файл с расширением
.py, работающий как небольшая библиотека, например стандартныйmathс функциями вродеsqrt()и константойpi. - Пакет. Каталог с несколькими связанными модулями и вложенными подкаталогами-пакетами, который выступает пространством имён, например пакет
numpy. - Файл __init__.py. Может быть пустым или содержать код инициализации пакета; он автоматически выполняется при импорте.
- Переиспользование. Импортируя модули и пакеты, код не дублируется, а подключается в другие программы через
import.
Пример кода
Импорт модуля и объекта из пакета
# модуль math — импорт и использование
import math
print(math.sqrt(16)) # 4.0
# импорт из пакета
from datetime import datetime
print(datetime.now())Что использовать на практике
- Структура проекта. Раскладывай код по смыслу на модули и пакеты, а не держи всё в одном файле.
- Готовые решения. Импортируй модули стандартной библиотеки, не изобретая собственные реализации.
- Инициализация. Помни: код в
__init__.pyвыполняется при импорте пакета.