Курс 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"
- Изменяемые и неизменяемые объекты
- Создание новых функций с помощью functools.partial
- Объединение словарей в Python
- Манипуляция формой массива в Numpy
- Очистка вывода в Python
- ChainMap избыточные ключи
- Работа с массивами в Python
- Добавление элементов в список: append() vs extend()
- Функции высшего порядка в Python
- Оператор is в Python
- Аннотации типов в Python
- Основы Python
- Создание таблиц в Python с PrettyTable
- Разделение строк в Python
- Работа с SQLite в Python
- Измерение времени выполнения кода
- Тестирование с responses
- Функция map() в Python
- Установка и загрузка Instaloader
- Руководство по библиотеке pydantic
- Группы исключений в Python
- Использование функции enumerate()
- Метод ifloordiv для пользовательских классов
- Принципы Zen Python
- Модуль pprint
- Получение комбинаций в Python
- Удаление дубликатов из списка
- Секреты Python
- Декораторы в Python
- Печать календаря
- Обновление ключей в Python
- Работа с файлами в Python
- Проверка условий: all и any
- Вывод сложных структур данных с помощью pprint
- Работа с часовыми поясами в Python.
- Создание виртуальной среды
- Типы возвращаемых значений в Python
- Множественные конструкторы в Python
- Оптимизация методов в Python 3.7
- Удаление специальных символов
- Переопределение метода sub
- Работа со строками в Python.
- Генерация QR-кодов с библиотекой qrcode
- Оптимизация памяти с __slots__















