Перейти к содержанию

Начало урока

Модули и пакеты

Разбейте растущую программу на файлы, которые можно переиспользовать, импортировать и распространять

Главная идея: модуль — это просто файл .py. Пакет — это каталог модулей. Вместо одного огромного скрипта вы раскладываете связанный код по именованным файлам и подтягиваете ровно то, что нужно, в другие файлы с помощью import. Именно так устроен любой реальный проект на Python — от инструмента в 200 строк до фреймворка вроде Django.
К концу урока вы сможете:
  • объяснить, что такое модуль, и написать свой собственный,
  • использовать все формы импорта (import, from ... import, as) и понимать их компромиссы,
  • описать, как Python находит модуль (sys.path) и что такое __pycache__,
  • правильно применять защиту if __name__ == "__main__":,
  • собрать пакет с __init__.py и выбрать между абсолютным и относительным импортом.

1. Что такое модуль на самом деле?

В начальном курсе вы писали import math и import random — модули, которые поставляются вместе с Python. Секрет приятно прост: модуль — это просто файл с кодом на Python. Любой файл, сохранённый с расширением .py, уже является модулем, а имя файла (без .py) — это имя модуля.

Допустим, вы пишете geometry.py:

# geometry.py
PI = 3.14159

def circle_area(radius):
    return PI * radius * radius

def rectangle_area(width, height):
    return width * height

Из другого файла в той же папке вы теперь можете переиспользовать этот код:

# main.py
import geometry

print(geometry.circle_area(2))
print(geometry.PI)

Вывод:

12.56636
3.14159

Имена, определённые на верхнем уровне geometry.py — PI, circle_area, rectangle_area — становятся атрибутами объекта модуля, к которым обращаются через точку: geometry.circle_area. Модули превращают папку с файлами в набор инструментов, из которого можно выбирать.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя