Курс Python → Управление доступом к модулю
При разработке программ на Python иногда возникает необходимость управлять тем, что именно будет доступно для импорта из модуля, а что останется скрытым. Для этого можно использовать атрибут __all__. Например, если мы хотим экспортировать только функцию bar из модуля, мы можем указать __all__ = ['bar'].
Если оставить атрибут __all__ пустым, то из модуля не будет экспортироваться ничего. При попытке импорта какого-либо атрибута из такого модуля, Python выдаст ошибку AttributeError. Это может быть полезно, если вы хотите скрыть определенные функции или переменные от внешнего доступа.
Пример использования атрибута __all__:
# module.py
def foo():
pass
def bar():
pass
__all__ = ['bar']
В данном примере из модуля module будет доступна только функция bar, а функция foo будет скрыта. При попытке импортировать foo будет выдана ошибка. Это помогает управлять доступом к функциям и переменным в ваших модулях и делает код более чистым и понятным.
Другие уроки курса "Python"
- Сравнение def и lambda-функций
- Работа с collections.Counter
- Проверка условий в Python
- Преобразование PowerPoint в PDF.
- Функции высшего порядка в Python
- Python-dateutil — работа с датами
- Логирование в Python
- Логирование с Logzero
- Операции с комплексными числами
- lru_cache оптимизация функций
- Поиск повторов в списке
- Операции с числами в Python
- Обработка StopIteration в Python
- Замена элементов в списке с помощью генераторов списков
- Модуль xkcd: добавление юмора в Python
- Оператор умножения для вектора
- Модуль inspect
- Переопределение метода __pow__
- Генератор списка в Python
- Работа со словарями с defaultdict из collections
- Функция __init__ в Python
- Работа с множествами в Python
- Аргумент по умолчанию
- Работа с итераторами в Python
- Библиотека Rich: форматирование текста
- Работа с Event() в threading
- Вакансии в Nebius
- Объединение, распаковка и деструктуризация
- Декораторы с аргументами
- Кортежи в Python: особенности и преимущества
- Создание итератора
- Автоматизация скриптов на AWS Lightsail.
- Управление пакетами с pip
- Сортировка и разворот списка
- JSON в Python: модуль, dump, dumps, load
- Копирование объектов в Python
- Логирование с Logzero: ротация файла
- Оператор += для объединения строк
- Создание словаря с значением по умолчанию
- Подчеркивание в REPL
- Уникальность ключей в словаре
- Отправка HTTP-запросов с User-Agent
- Функция product() в Python
- split() — разделение строки
- Логирование с Loguru
- Замена текста с re.sub()
- Руководство по использованию Colorama
- Создание циклической ссылки
- Определение индекса элемента списка
- Метод Enumerate() для списков















