/
IvanKhabarov
/
python
Обзор
Документация
Войти
/
IvanKhabarov
/
python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Lections/Lesson6/super_module.py
31 строка
2 KB
Ivan-Khabarov
Добавлена лекция 6
08 сен 2024, 12:23
08 сен 2024, 12:23
97faa80
Код
Авторство
О чём код?
# Переменная __all__ # При необходимости разработчик модуля может явно указать какие объекты нужно # импортировать при использовании стиля from module import *. Для этого # используется магическая переменная __all__ (два нижних подчёркивания до, слово # all и два нижних подчёркивания после). Изменим код модуля super_module.py, # добавив строку с __all__ from random import randint __all__ = ['func', '_secret'] SIZE = 100 _secret = 'qwerty' __top_secret = '1q2w3e4r5t6y' def func(a: int, b: int) -> str: z = f'В диапазоне от {a} до {b} получили {randint(a, b)}' return z result = func(1, 6) # Переменной __all__ присваивается список имён объектов, заключённых в кавычки, # т.е. str типа. В основной модуль попадут только указанные в списке имена, # независимо от того являются они публичными, защищёнными или приватными. При # этом объект должен быть глобальным. Если указать в списке имя локального # объекта, например переменную z — локальную переменную функции func, получим # ошибку. # Список __all__ в приведённом примере используется для формирования списка # импортируемых объектов модуля. Кроме этого __all__ применяется для импорта # модулей из пакета. Рассмотрим вариант импорта модулей из пакета далее на # лекции.