В этом модуле мы разберем конструкцию from ... import. Эта форма импорта позволяет подключать конкретные функции, классы или переменные из модуля, не импортируя модуль целиком. Это делает код компактнее и избавляет от необходимости постоянно писать имя модуля перед каждой функцией (например, sqrt() вместо math.sqrt()).
Мы изучим:
- Базовый синтаксис частичного импорта.
- Импорт нескольких объектов сразу.
- Использование псевдонимов (алиасов) с ключевым словом
as. - Особенности работы с пространством имен (почему после
fromимя самого модуля становится недоступным). - Потенциальные проблемы при импорте через звездочку
*.
Выполните задания ниже, чтобы закрепить навыки работы с выборочным импортом.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Импорт модулей.
- from ... import.
- if __name__ == '__main__'.
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
1. Импорт конкретной функции
Нам нужно вычислить квадратный корень числа, но мы не хотим каждый раз писать префикс модуля. Заполните пропуски, чтобы импортировать только функцию `sqrt` из модуля `math`.
input1S math input2S sqrt
print(sqrt(25))2. Исправьте порядок ключевых слов
В этом коде перепутаны местами ключевые слова и названия. Исправьте строку импорта так, чтобы она стала синтаксически верной для Python.
import pi from mathprint(f"Число Пи равно {pi}")3. Пространство имен после импорта
Внимательно посмотрите на код. Мы импортировали число `pi` из модуля `math`. Что произойдет при попытке обратиться к самому модулю `math` в функции print?
from math import pi
# Пытаемся вывести значение через имя модуля
print(math.pi)4. Импорт с переименованием (Alias)
Иногда названия функций слишком длинные или могут совпадать с вашими переменными. Используйте банк слов, чтобы импортировать функцию `sleep` из модуля `time`, но дать ей короткое имя `pause`.
input1S time input2S sleep input3S pause
print("Start")
pause(1)
print("End")5. Импорт нескольких функций
Соберите код, который импортирует сразу две функции (`sin` и `cos`) из модуля `math` в одной строке, а затем использует их. Обратите внимание на синтаксис перечисления.
print(sin(0) + cos(0))from math import sin, cosimport math.sin, math.cosfrom math import sin; cos6. Виды импорта и их смысл
Сопоставьте конкретную строку кода с описанием того, что именно она делает.
from module import *from module import x, yfrom module import a as b7. Как мы обращаемся к объектам?
В зависимости от способа импорта, обращение к функциям в коде меняется. Распределите примеры вызова функций по категориям: когда мы импортировали весь модуль (`import math`) и когда мы использовали частичный импорт (`from math import ...`).
math.sqrt(4)pirandom.randint(1, 10)sin(90)os.path.join('a', 'b')exit()8. Конфликт имен
Посмотрите, как порядок строк влияет на значение переменной `e` (число Эйлера). Что выведет этот код? Введите число.
from math import e
e = 10
print(e)