Курс 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. Поиск самого длинного слова в списке с использованием max()
  3. Присвоение и ссылки
  4. Поиск анаграмм с Counter
  5. Освоение Python
  6. Создание вкладок с TKinter
  7. Сравнение объектов в Python
  8. Наиболее частотные элементы с помощью Counter
  9. Избегайте ошибку FileNotFoundError
  10. Многопоточность в Python
  11. Итераторы с потерямиZIP
  12. Функции map() и reduce() в Python
  13. Подчеркивание в REPL
  14. Тернарный оператор в Python
  15. Работа с CSV файлами
  16. Аннотации типов в Python
  17. Управление памятью в Python
  18. Функции высшего порядка в Python
  19. Добавление цвета в консоли
  20. capitalize() — изменение регистра первого символа строки
  21. Проверка однородности элементов списка
  22. Возврат нескольких значений из функции
  23. Работа с рекламными данными в Pandas
  24. Циклы for в Python
  25. Метод count в Python: почему count(», ») возвращает 4?
  26. Использование двоеточия в Python
  27. Разделение строк методом split()
  28. Тестирование времени с Freezegun
  29. Анонимные функции в Python
  30. Область видимости переменных
  31. Удаление файлов с shutil.os.remove()
  32. Установка и использование Logzero
  33. Разделение строки на подстроки в Python
  34. Python UserString — создание подклассов строк
  35. Преобразование чисел в слова
  36. Оптимизация интернирования строк
  37. Декораторы в Python
  38. Defaultdict в Python
  39. Поиск уникальных элементов строкой в Python
  40. Объединение строк с помощью метода join
  41. Сортировка элементов в Python
  42. Каналы Senior: Python, Java, Frontend, SQL, C++
  43. Удаление знаков препинания в Python
  44. Инициализация переменных
  45. Лямбда-функции в defaultdict

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