Курс 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"

  1. Сравнение def и lambda-функций
  2. Работа с collections.Counter
  3. Проверка условий в Python
  4. Преобразование PowerPoint в PDF.
  5. Функции высшего порядка в Python
  6. Python-dateutil — работа с датами
  7. Логирование в Python
  8. Логирование с Logzero
  9. Операции с комплексными числами
  10. lru_cache оптимизация функций
  11. Поиск повторов в списке
  12. Операции с числами в Python
  13. Обработка StopIteration в Python
  14. Замена элементов в списке с помощью генераторов списков
  15. Модуль xkcd: добавление юмора в Python
  16. Оператор умножения для вектора
  17. Модуль inspect
  18. Переопределение метода __pow__
  19. Генератор списка в Python
  20. Работа со словарями с defaultdict из collections
  21. Функция __init__ в Python
  22. Работа с множествами в Python
  23. Аргумент по умолчанию
  24. Работа с итераторами в Python
  25. Библиотека Rich: форматирование текста
  26. Работа с Event() в threading
  27. Вакансии в Nebius
  28. Объединение, распаковка и деструктуризация
  29. Декораторы с аргументами
  30. Кортежи в Python: особенности и преимущества
  31. Создание итератора
  32. Автоматизация скриптов на AWS Lightsail.
  33. Управление пакетами с pip
  34. Сортировка и разворот списка
  35. JSON в Python: модуль, dump, dumps, load
  36. Копирование объектов в Python
  37. Логирование с Logzero: ротация файла
  38. Оператор += для объединения строк
  39. Создание словаря с значением по умолчанию
  40. Подчеркивание в REPL
  41. Уникальность ключей в словаре
  42. Отправка HTTP-запросов с User-Agent
  43. Функция product() в Python
  44. split() — разделение строки
  45. Логирование с Loguru
  46. Замена текста с re.sub()
  47. Руководство по использованию Colorama
  48. Создание циклической ссылки
  49. Определение индекса элемента списка
  50. Метод Enumerate() для списков

Marketello читают маркетологи из крутых компаний