Курс 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
- Поиск наиболее частого элемента списке
- Поиск индекса элемента
- Работа с комбинациями в Python.
- Удаление файлов и папок в Python
- Операции с массивами в NumPy
- Функция с *args.
- Работа с часовыми поясами в Python
- Динамическая типизация в Python
- Библиотека Emoji: использование смайлов в Python
- Функция reduce() из модуля functools
- Создание словарей с defaultdict
- Оптимизация параметров в Python
- Переопределение метода __lshift__
- Функции высшего порядка в Python
- Логирование с Logzero
- Создание функций с произвольным количеством аргументов
- Работа с модулем cmath
- Замеры производительности в Python
- Форматирование объектов с модулем pprint
- Преобразование числа в список цифр
- Форматирование строк в Python
- Путь к интерпретатору Python
- Генераторы по генератору
- Освобождение памяти в Python
- Преобразование многоуровневого словаря
- Обработка ошибок ввода данных
- Отслеживание выполнения программы с библиотекой tqdm
- Использование type hints
- Проверка переменных окружения в Python
- Мониторинг памяти с Pympler
- Обрезка изображения с Pillow
- Списки в Python
- Отправка HTTP-запросов с User-Agent
- Работа с GitHub в Telegram
- Профилирование данных с Pandas
- Переменная Шредингера
- Поиск самого частого элемента
- Копирование объектов в Python
- Закрытие файла в Python
- Функции с необязательными аргументами
- Преобразование символов с помощью map
- Удаление элемента по индексу в Python















