Курс 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"
- Работа с defaultdictами в Python
- Оператор space-invader
- split() без разделителя
- Работа с кортежами
- JSON в Python: модуль, dump, dumps, load
- Работа с датой и временем в Python
- Мощь вложенных функций в Python
- Операции со строками в Python
- Список переменных с %who
- Создание лямбда-функций
- Назначение максимального и минимального значения переменной в Python.
- Транспонирование матрицы в Python
- Генераторы в Python
- Создание списка через итерацию
- Подсчет элементов в Python
- Numpy: объединение массивов
- Разрешение имен в Python
- Тип CodeType в Python.
- Инициализация структур данных
- Работа со строками в Python
- Метод __ixor__ для побитового исключающего ИЛИ
- Многопоточность и асинхронное программирование в Python
- Множества и frozenset
- Измерение времени выполнения кода
- Добавление цвета в консоли
- Метод get() для словарей
- Установка и загрузка Instaloader
- Оператор break в Python
- Нахождение максимального значения и его индекса в списке
- JMESPath в Python
- Декораторы в Python
- Фильтрация последовательности
- Работа с Colorama
- Создание GUI на Tkinter
- Генерация строк с .join()
- Переопределение метода __eq__
- Получение идентификатора объекта в памяти
- Обход дочерних элементов BeautifulSoup
- Python: отличительная особенность — отступы
- Передача аргументов через **arguments
- Оптимизация памяти с __slots__
- Отладчик pdb: начало работы
- Сортировка в Python















