Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Теперь, когда вы знаете, что такое модули, давайте перейдем на шаг дальше и поговорим о пакетах в Python.

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


Что такое пакет?

Пакет — это просто директория, которая содержит:

  • Файл __init__.py (даже если он пустой)
  • Один или несколько модульных файлов (.py)
  • Необязательные подпакеты (папки с собственным __init__.py)

Файл __init__.py выполняется при импорте пакета.
Он может использоваться для настройки импортов по умолчанию, определения переменных или выполнения кода инициализации.

Пример структуры пакета

Вот простой пакет под названием mypackage:

mypackage/
__init__.py
module1.py
module2.py

Использование __init__.py для импортов по умолчанию

Внутри __init__.py можно выбрать, какие части пакета будут доступны напрямую при его импорте.

Пример — в mypackage/__init__.py:

from .module1 import my_function
from .module2 import another_function

Таким образом, при импорте пакета можно использовать эти функции без необходимости импортировать каждый модуль отдельно.

Импорт и использование пакета

Пример — в другом Python-файле:

import mypackage

mypackage.my_function()
mypackage.another_function()

Здесь:

  • import mypackage выполняет код в __init__.py.
  • Функции из module1 и module2 доступны, потому что мы импортировали их в __init__.py.
СОВЕТ: Вы всё равно можете импортировать конкретные модули из пакета, если хотите:
from mypackage import module1

Зачем использовать пакеты?

Пакеты помогают вам: • Организовывать код по логическим разделам. • Повторно использовать связанные модули в разных проектах. • Масштабировать программы по мере роста их сложности.

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


Далее мы узнаем больше о разных способах импорта модулей и пакетов — и когда использовать каждый из них.