Курс 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. Многопоточность и асинхронное программирование в Python
  3. JSON в Python: модуль, dump, dumps, load
  4. Работа с Path в Python
  5. Отображение графиков в Jupyter с Matplotlib
  6. Область видимости переменных в Python
  7. Проверка типов с помощью isinstance
  8. Переменная Шредингера
  9. Генерация случайных чисел Python
  10. Удаление знаков препинания в Python
  11. Непрерывная проверка в Python
  12. Многопоточность в Python
  13. Создание функций с произвольным количеством аргументов
  14. Переопределение метода __pow__
  15. Удаление элементов во время итерации
  16. Оптимизация гиперпараметров с Scikit Optimize
  17. Python и Юникод: работа с цифрами
  18. Функция с *args.
  19. Контекстный менеджер в Python
  20. Получение размера объекта с sys.getsizeof()
  21. Python Calendar Usage
  22. Кортеж в Python: создание, доступ, изменение
  23. Создание коллекций из выражения-генератора
  24. Разработка Telegram-ботов
  25. Декораторы в Python
  26. Работа с дробями в Python
  27. Создание и использование ChainMap
  28. Создание списка дат
  29. Оператор Walrus в Python 3.8
  30. Путь к интерпретатору Python
  31. inspect в Python: анализ кода
  32. Итерация по коллекции в Python
  33. Создание namedtuple списком полей
  34. Оболочка Python
  35. Измерение времени выполнения кода
  36. Работа с модулем os в Python
  37. Создание комплексных чисел
  38. Оператор space-invader
  39. Вставка переменных в шаблоны Flask
  40. Получение частей дроби
  41. Определение относительного пути
  42. Построение графиков в Matplotlib
  43. Операции с массивами в NumPy
  44. Оператор обр. импликации
  45. Работа с датой и временем в Python
  46. Операторы увеличения и уменьшения в Python
  47. Распаковка значений в Python

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