Курс 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. Метод setdefault() в Python
  2. Переменная с нижним подчеркиванием
  3. Работа с очередями в Python
  4. Динамическая типизация в Python
  5. Активация Matplotlib в Jupyter
  6. Поиск с помощью регулярных выражений
  7. Работа с аргументами командной строки
  8. Тест скорости набора текста на Python
  9. Установка и использование pyshorteners
  10. Хранение данных
  11. Пространство имен в Python
  12. Функция reversed() в Python
  13. Поиск самого длинного слова в списке с использованием max()
  14. Списки в Python: основы
  15. Создание словарей с defaultdict()
  16. Сравнение строк в Python
  17. Нахождение пересечения множеств
  18. Поиск простых чисел
  19. Регистрация на курсы SF Education
  20. Замена переменных в Python
  21. Улучшенные подсказки для импорта в Python 3.12
  22. Декораторы в Python
  23. Создание вложенных циклов for
  24. Переопределение метода divmod
  25. Метод __irshift__ для побитового сдвига вправо
  26. Генераторы в Python
  27. Создание новых списков
  28. Метод splitlines() для разделения строк
  29. Установка и использование Logzero
  30. Декораторы для регистрации функций
  31. Проблемы с dict в Python
  32. Метод append() для списка
  33. Отображение графиков в Jupyter с Matplotlib
  34. Проверка версии Python
  35. Форматирование строк с помощью f-строк
  36. Импорт модуля из другого каталога
  37. Именование столбцов в Python с pandas
  38. Создание списков в Python
  39. Оформление текста в консоли с TermColor
  40. Операции с кортежами
  41. Измерение времени выполнения кода с использованием time
  42. Работа с дробями в Python
  43. Замена текста с помощью sub
  44. Работа с переменными в Python
  45. Оценка выражений генератора в Python

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