Курс 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. Измерение времени выполнения
  2. Преобразование документов в PDF с помощью Spire.Office
  3. Удаление ключей из словаря
  4. Делегирование в Python
  5. Удаление файлов и папок в Python
  6. Транспонирование 2D-массива с помощью zip
  7. Логирование в Python
  8. Запуск файлового сервера
  9. Работа с часовыми поясами в Python
  10. Бесконечные списки в Python
  11. Исправление ошибки NameError
  12. Retrying в Python: повторные вызовы
  13. Defaultdict в Python
  14. Оболочка Python
  15. Оптимизация параметров в Python
  16. Аннотации типов в Python
  17. Управление контекстом с помощью декоратора contextmanager
  18. Изменение списка срезами
  19. Освобождение памяти в Python
  20. Python reversed() функция
  21. Хранение переменных в словаре.
  22. Объединение объектов в Python
  23. Оператор «моржа» (Walrus Operator)
  24. Объединение, распаковка и деструктуризация
  25. Работа с модулем Calendar
  26. Переопределение метода __or__()
  27. Разница между датами
  28. Оптимизация строк в Python
  29. Python Translator: создание локальных переводчиков
  30. Основы слова
  31. Работа со словарями
  32. Отображение графиков в Jupyter с Matplotlib
  33. Генераторы в Python
  34. Мощь вложенных функций в Python
  35. Распаковка с оператором *
  36. Оператор walrus в Python
  37. Генерация случайных чисел в Python
  38. Метод округления чисел
  39. Применение промокода в Много лосося
  40. split() — разделение строки
  41. Виртуальные среды в Python
  42. Секреты Python
  43. Упрощение условных выражений с тернарным оператором
  44. Работа с каталогами в Python

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