Курс 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. Работа с процессами в Python
  2. Импорт объектов из модулей
  3. Порядок операций в Python
  4. Оператор «not» в Python
  5. Работа с путями в Python
  6. Создание словарей и множеств в Python.
  7. Установка виртуального окружения Python
  8. Преобразование списков в словарь
  9. Объединение Python и Shell
  10. Подсчет элементов в списке с Counter
  11. Операции с комплексными числами
  12. Метод join() для объединения элементов
  13. Создание именованных кортежей в Python
  14. Работа с модулем bisect
  15. Форматирование строк с % в Python
  16. Открытие, чтение и закрытие файла
  17. Замена текста в Python
  18. EMOT преобразование эмодзи в текст
  19. Распаковка аргументов в Python
  20. Создание namedtuple списком полей
  21. Представление бесконечности в Python
  22. Функции-генераторы в Python
  23. Создание новых списков в Python
  24. Оператор «is not» в Python
  25. Преобразование Word в PDF с Spire.Doc
  26. Порядок и длина множеств в Python
  27. Переворот строки с помощью срезов
  28. Документирование функций в Python
  29. Расчет времени выполнения кода
  30. Работа с контекстными менеджерами
  31. Работа с файловой системой в Python
  32. Получение ID текущего процесса
  33. Хэш-функции и метод цепочек
  34. Создание пар из последовательностей
  35. Удаление пробелов методом translate()
  36. Создание спинбокса в tkinter
  37. Изменение объектов в Python
  38. Имена объектов в Python
  39. Открытие и запись файлов
  40. Измерение времени выполнения с помощью time
  41. Работа с базами данных SQLite
  42. Декораторы в Python
  43. Управление контекстом выполнения кода
  44. Блок else в циклах.
  45. Принципы SRP и OCP
  46. Итераторы в Python
  47. Частичное совпадение пользовательского ввода в Python 3.10
  48. Оптимизация памяти с помощью __slots__

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