Курс 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. Тест скорости набора текста на Python
  2. Запрос DELETE с библиотекой requests
  3. Форматирование строк с f-строками
  4. Передача аргументов в Python
  5. Функция findall() для поиска вхождений строки
  6. Метод rsub для пользовательских чисел
  7. Операторы сравнения в Python
  8. Преобразование в float
  9. Создание таблиц в Python с PrettyTable
  10. Лимиты на ресурсы Python
  11. Генерация случайных чисел Python
  12. Основы работы с os
  13. Подробная информация о %pinfo
  14. Создание OrderedDict
  15. Работа с набором данных CIFAR10 в PyTorch
  16. Пропуск начальных строк с помощью dropwhile()
  17. Создание спинбокса в tkinter
  18. Управление мышью и клавиатурой с Pyautogui
  19. Работа со списками
  20. Переименование файлов в Python
  21. Создание уникального множества
  22. Динамическая типизация в Python
  23. Сортировка данных в Python
  24. Генераторы в Python
  25. Создание списков в Python
  26. Проверка памяти объекта
  27. Карта бомбоубежищ в Москве и Питере
  28. Работа с itertools
  29. Работа с getopt
  30. Функция reduce() из модуля functools
  31. Работа с enumerate()
  32. Декораторы в Python
  33. Асинхронное программирование с asyncio
  34. Python: отличительная особенность — отступы
  35. Работа с Enum в Python3.
  36. Переворот последовательности
  37. Функция pow() — возвести число в степень
  38. Функции range() в Python
  39. Отладка в Python
  40. Python reversed() vs срез[::-1]
  41. Создание словаря и множества
  42. Сортировка данных с лямбда-функциями
  43. Solidity для DeFi Ethereum

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