Курс 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"
- Тест скорости набора текста на Python
- Запрос DELETE с библиотекой requests
- Форматирование строк с f-строками
- Передача аргументов в Python
- Функция findall() для поиска вхождений строки
- Метод rsub для пользовательских чисел
- Операторы сравнения в Python
- Преобразование в float
- Создание таблиц в Python с PrettyTable
- Лимиты на ресурсы Python
- Генерация случайных чисел Python
- Основы работы с os
- Подробная информация о %pinfo
- Создание OrderedDict
- Работа с набором данных CIFAR10 в PyTorch
- Пропуск начальных строк с помощью dropwhile()
- Создание спинбокса в tkinter
- Управление мышью и клавиатурой с Pyautogui
- Работа со списками
- Переименование файлов в Python
- Создание уникального множества
- Динамическая типизация в Python
- Сортировка данных в Python
- Генераторы в Python
- Создание списков в Python
- Проверка памяти объекта
- Карта бомбоубежищ в Москве и Питере
- Работа с itertools
- Работа с getopt
- Функция reduce() из модуля functools
- Работа с enumerate()
- Декораторы в Python
- Асинхронное программирование с asyncio
- Python: отличительная особенность — отступы
- Работа с Enum в Python3.
- Переворот последовательности
- Функция pow() — возвести число в степень
- Функции range() в Python
- Отладка в Python
- Python reversed() vs срез[::-1]
- Создание словаря и множества
- Сортировка данных с лямбда-функциями
- Solidity для DeFi Ethereum















