Импорт: import, from ... import
Импорт: import, from ... import
В предыдущем модуле мы изучили всё о функциях. Теперь выйдем за пределы одного файла: в реальных проектах код разбит на модули, и умение их подключать — базовый навык Python-разработчика. Модули дают доступ к стандартной библиотеке и сторонним пакетам.
Что такое модуль
Модуль — это любой Python-файл (.py). Когда вы пишете import math, Python находит файл math.py (или скомпилированный аналог) и выполняет его, делая содержимое доступным через имя math.
Форма import
Простейший импорт — импортировать весь модуль:
import math
print(math.pi) # 3.141592653589793
print(math.sqrt(16)) # 4.0
print(math.floor(3.7)) # 3
Всё, что есть в модуле, доступно через точечную нотацию: math.что_нужно. Это явно: читая math.sqrt, сразу ясно, откуда пришла функция.
Форма from ... import
Если из модуля нужно только несколько имён, используйте from ... import:
from math import sqrt, pi
print(sqrt(25)) # 5.0 — без префикса math.
print(pi) # 3.141592653589793
Имена попадают прямо в текущее пространство имён. Это удобно, но при неосторожном использовании может перекрыть другие имена с тем же написанием.
Псевдонимы: as
Длинные имена модулей можно сократить через as:
import datetime as dt
from math import factorial as fact
print(dt.date.today()) # 2025-04-29
print(fact(5)) # 120
Псевдонимы — конвенция для часто используемых библиотек: import numpy as np, import pandas as pd. В стандартной библиотеке псевдонимы нужны реже.
Форма from ... import * — осторожно
from math import * # импортировать ВСЁ из модуля
Это работает, но плохая практика: неясно, откуда пришло каждое имя. Такой импорт засоряет пространство имён и может неожиданно перекрыть уже определённые переменные. Используйте только в REPL для быстрых экспериментов.
Повторный импорт
Python кэширует модули. Второй import math не читает файл снова — возвращает уже загруженный объект из sys.modules. Это эффективно и безопасно.
Порядок импортов (соглашение PEP 8)
По соглашению импорты пишутся в начале файла в таком порядке:
# 1. Стандартная библиотека
import os
import sys
from math import sqrt
# 2. Сторонние пакеты (установленные через pip)
# import requests
# 3. Локальные модули проекта
# from my_project import utils
Группы разделяют пустой строкой. Это соглашение, а не требование Python, — но большинство команд его придерживается.
Проверь себя
Что выведет следующий код и что импортируется?
from math import ceil, floor
print(ceil(3.2))
print(floor(3.9))
ceil(3.2) → 4 (округление вверх). floor(3.9) → 3 (округление вниз). Импортированы только ceil и floor из math.
Итог
import module— импортировать весь модуль; доступ черезmodule.имя.from module import name— импортировать конкретные имена в текущее пространство.import module as alias— псевдоним для удобства.from module import *— не рекомендуется в рабочем коде.- Импорты — в начале файла; сначала stdlib, затем сторонние, затем локальные.
В следующем уроке разберём модуль math — набор математических функций и констант, встроенных в Python.