Курс 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"
- Проектирование Singleton с метаклассом
- Список импортированных модулей в Python
- Именованные срезы в Python
- Мониторинг работы программы Py-spy
- Удаление элемента из списка в Python
- Ускорение обработки данных с %autoawait
- Обработка элементов в Python
- Сглаживание списка
- Введение в Python
- Оператор Walrus: правильное использование
- Установка Git и AWS CLI
- Замена символов в строке
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Копирование в Python
- Сравнение строк в Python
- Метод index() в Python
- Работа с словарями в Python
- Генерация случайных чисел Python
- Работа с датой и временем в Python
- Округление дробей в Python
- Исправление ошибки NameError
- Функции с дополнением
- Объединение словарей в Python
- Проверка кортежей.
- Шаблоны Flask: условия и циклы
- Проверка типов с помощью isinstance
- Стать Python-разработчиком
- Оформление кода по PEP 8
- Работа с zip-архивами в Python
- Форматирование данных с помощью pprint
- Переворот строки с использованием цикла
- Отделение звука от видео
- Делегирование в Python
- Создание namedtuple списком полей
- Объединение списков в строку
- Сравнение def и lambda функций в Python
- Конкатенация строк с методом join()
- Библиотека funcy: удобные утилиты
- Создание лямбда-функций
- Получение значений из словарей
- Оператор @ для умножения матриц
- Блок try-except-else
- Работа с индексами списков
- Добавление элементов в список
- Область видимости переменных















