Курс 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"
- Реализация метода __abs__ в Python
- Любовь к Python
- Поиск индекса элемента в списке
- Цикл for с enumerate() в Python
- Создание директории в Python
- Считывание бинарного файла в Python
- TON Smart Challenge #2: участие и подготовка
- Работа с collections.Counter
- Переопределение метода delitem в Python
- Создание новых списков
- Форматирование даты с strftime()
- Нахождение максимального значения и его индекса в списке
- Проверка вхождения подстроки
- Создание и операции с дробями
- Генераторы списков в Python
- Функция zip() в Python
- Модуль subprocess: запуск внешних команд
- Инверсия списков и строк в Python
- Concrete Paths в Python
- Получение текущей даты и времени
- Рациональные числа в Python
- Отношения подклассов в Python
- Работа со словарями Python
- Оптимизация методов в Python 3.7
- Объединение коллекций в Python
- Очистка входных данных
- Структура данных словарь в Python
- Метод getitem для доступа к элементам последовательности
- Управление памятью в numpy.
- Поиск шаблона в начале строки
- Конкатенация строковых литералов
- Работа с утверждениями в Python
- Приоритет операций в Python
- Лямбда-функции в defaultdict
- Операция += для списков
- Создание Radio кнопок в tkinter
- Повторение и перенос строки
- Основные операции с библиотекой Numpy
- Обработка аргументов Python
- Поиск самого частого элемента
- Аннотации типов в Python
- Изменение списка срезом
- Модуль subprocess: запуск внешних команд
- f-строки в формате строк
- Ускорение обработки данных с %autoawait
- Преобразование данных в Python















