Курс 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"
- Метод setdefault() в Python
- Замена текста с помощью sub
- Операции с числами в Python
- %pinfo: получение информации об объекте
- Функциональное программирование.
- Списковое включение в Python
- Заказ карты Тинькофф Black
- Справка по импортированным модулям
- Операторы объединения в Python 3.9
- Лямбда-функции в Python
- Списки: объединение, изменение
- Логирование с Logzero: ротация файла
- Определение относительного пути
- Разрешение имен в Python
- Асинхронный код в Python
- Множественное назначение в Python
- ChainMap избыточные ключи
- Удаление символа из строки
- Сортировка списка по индексам
- Работа с deque из collections
- Разработка игры Pong с turtle
- Создание матрицы в Python
- Вызов функций по строке в Python.
- Python и Юникод: работа с цифрами
- Преобразование объекта в строку
- Создание Telegram-бота на Python
- История Python
- Модуль pprint
- Повторение элементов в Python
- Оптимизация памяти с slots
- Форматирование строк с % в Python
- Особенности множеств в Python
- Работа с срезами в Numpy
- Удаление элементов во время итерации
- Основные операции с библиотекой Numpy
- Установка и использование библиотеки google
- Метод __irshift__ для побитового сдвига вправо
- Метод join для наборов
- Работа с географическими данными в Python
- Обработка исключений в Python
- Разделение строки с помощью re.split()
- Возврат нескольких значений
- Сокращение ссылок с pyshorteners















