Курс Python → Управление импортом в Python
В Python управление тем, что может быть импортировано из модуля, а что — нет, осуществляется с помощью атрибута `__all__`. Если в модуле определить атрибут `__all__`, то при импорте через `from module import *` будут импортированы только те имена, которые перечислены в этом атрибуте. В противном случае будут импортированы все имена, не начинающиеся с нижнего подчеркивания.
Например, если у нас есть модуль `my_module.py` с определенными функциями и переменными, и мы хотим импортировать только часть их из этого модуля, мы можем определить атрибут `__all__` внутри этого модуля. Например, `__all__ = [‘my_function’, ‘my_variable’]`. Тогда при импорте `from my_module import *` будут доступны только `my_function` и `my_variable`.
# Пример определения атрибута __all__ в модуле
__all__ = ['my_function', 'my_variable']
def my_function():
print("This is my function")
my_variable = 42
Если атрибут `__all__` не определен в модуле, то при импорте через `from module import *` будут доступны все имена, которые не начинаются с нижнего подчеркивания. Это может привести к тому, что будут импортированы имена, которые не предполагалось экспортировать из модуля, что может привести к конфликтам и ошибкам в программе.
Использование атрибута `__all__` позволяет более четко контролировать, какие имена из модуля должны быть доступны для импорта извне, что способствует более структурированному и безопасному программированию в Python.
Другие уроки курса "Python"
- Установка пакетов с помощью pip
- Модуль xkcd: загрузка комиксов
- Создание итератора
- Моржовый оператор в Python 3.8
- Расчет времени выполнения кода
- Блок else в циклах Python
- Установка User-Agent в Python
- Цикл for в Python
- Генераторы в Python
- Атрибуты объекта в Python
- Генераторы в Python
- Область видимости переменных в Python
- Управление браузером с Selenium
- Пространство имен в Python
- Лямбда-функции в Python
- Создание списка через цикл
- Особенности ключей словаря в Python
- Оператор in в Python
- Python-dateutil — работа с датами
- Вызов внешних программ в Python с помощью sh
- Проверка элементов списка условием
- Подсчет элементов с помощью Counter
- Создание вложенных циклов for
- Создание директории в Python
- Создание матрицы в Python
- Изменение списка срезом
- Сравнение def и lambda функций в Python
- Разделение функций на этапы
- Структура данных deque в Python
- Работа с путями в Python
- Отрицательные индексы списков
- Concrete Paths — метод .with_suffix()
- Принципы программирования
- Аннотации типов в Python
- Тестирование с unittest
- Ограничение итераций в Python
- Метод split() для разделения строк
- Получение имени функции с помощью inspect
- Операторы Splat и splatty-splat
- Распаковка значений в Python
- Установка random seed в Python
- Подсчет элементов в Python
- Работа с модулем Calendar
- Метод enumerate() в Python
- Удаление дубликатов из списка
- Удаление ключей из словаря















