Курс Python → Управление импортом в Python

В Python управление тем, что может быть импортировано из модуля, а что — нет, осуществляется с помощью атрибута `__all__`. Если в модуле определить атрибут `__all__`, то при импорте через `from module import *` будут импортированы только те имена, которые перечислены в этом атрибуте. В противном случае будут импортированы все имена, не начинающиеся с нижнего подчеркивания.

Например, если у нас есть модуль `my_module.py` с определенными функциями и переменными, и мы хотим импортировать только часть их из этого модуля, мы можем определить атрибут `__all__` внутри этого модуля. Например, `__all__ = [‘my_function’, ‘my_variable’]`. Тогда при импорте `from my_module import *` будут доступны только `my_function` и `my_variable`.


# Пример определения атрибута __all__ в модуле
__all__ = ['my_function', 'my_variable']

def my_function():
    print("This is my function")

my_variable = 42

Если атрибут `__all__` не определен в модуле, то при импорте через `from module import *` будут доступны все имена, которые не начинаются с нижнего подчеркивания. Это может привести к тому, что будут импортированы имена, которые не предполагалось экспортировать из модуля, что может привести к конфликтам и ошибкам в программе.

Использование атрибута `__all__` позволяет более четко контролировать, какие имена из модуля должны быть доступны для импорта извне, что способствует более структурированному и безопасному программированию в Python.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Установка пакетов с помощью pip
  2. Модуль xkcd: загрузка комиксов
  3. Создание итератора
  4. Моржовый оператор в Python 3.8
  5. Расчет времени выполнения кода
  6. Блок else в циклах Python
  7. Установка User-Agent в Python
  8. Цикл for в Python
  9. Генераторы в Python
  10. Атрибуты объекта в Python
  11. Генераторы в Python
  12. Область видимости переменных в Python
  13. Управление браузером с Selenium
  14. Пространство имен в Python
  15. Лямбда-функции в Python
  16. Создание списка через цикл
  17. Особенности ключей словаря в Python
  18. Оператор in в Python
  19. Python-dateutil — работа с датами
  20. Вызов внешних программ в Python с помощью sh
  21. Проверка элементов списка условием
  22. Подсчет элементов с помощью Counter
  23. Создание вложенных циклов for
  24. Создание директории в Python
  25. Создание матрицы в Python
  26. Изменение списка срезом
  27. Сравнение def и lambda функций в Python
  28. Разделение функций на этапы
  29. Структура данных deque в Python
  30. Работа с путями в Python
  31. Отрицательные индексы списков
  32. Concrete Paths — метод .with_suffix()
  33. Принципы программирования
  34. Аннотации типов в Python
  35. Тестирование с unittest
  36. Ограничение итераций в Python
  37. Метод split() для разделения строк
  38. Получение имени функции с помощью inspect
  39. Операторы Splat и splatty-splat
  40. Распаковка значений в Python
  41. Установка random seed в Python
  42. Подсчет элементов в Python
  43. Работа с модулем Calendar
  44. Метод enumerate() в Python
  45. Удаление дубликатов из списка
  46. Удаление ключей из словаря

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