Импорт: 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.

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике