Курс 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. TON Smart Challenge #2: участие и подготовка
  3. Передача неизвестных аргументов в Python.
  4. Вставка переменных в шаблоны Flask
  5. Справка по импортированным модулям
  6. Правила именования переменных
  7. Вычисление логарифмов в Python
  8. Работа со строками в Python
  9. Счетчик ссылок в Python
  10. Создание генераторов
  11. Обработка исключений в Python
  12. Лямбда-функции в Python
  13. Работа с исключениями в Python
  14. Получение списка файлов в директории с использованием os
  15. Переопределение метода __floordiv__
  16. Сортировка и обратный порядок
  17. Работа с срезами в Numpy
  18. Красивый вывод списка
  19. Создание словарей в Python
  20. Преобразование в float
  21. Создание пустых функций и классов в Python
  22. Отслеживание выполнения программы с библиотекой tqdm
  23. Настройка нарезки списков
  24. Функция map() и ленивая оценка
  25. Форматирование вывода списков
  26. Обработка ошибки IndexError
  27. capitalize() — изменение регистра первого символа строки
  28. Работа с collections в Python
  29. Создание новых функций с помощью functools.partial
  30. Работа с collections в Python.
  31. Оператор объединения словарей
  32. Асинхронное выполнение задач в Python
  33. Бесконечные списки в Python
  34. Присвоение значений переменным в Python
  35. Непрерывная проверка в Python
  36. Классы данных в Python
  37. Защита данных в Python
  38. Удаление знаков препинания в Python
  39. Измерение времени выполнения с помощью time
  40. Генераторы в Python
  41. Метод Event.wait() в Python
  42. Генератор списка в Python
  43. Создание директории в Python
  44. Оператор «not» в Python
  45. Создание вкладок с TKinter
  46. Декораторы в Python
  47. Отправка POST-запроса в REST API

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