Курс 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. Поиск наиболее частого элемента списке
  3. Поиск индекса элемента
  4. Работа с комбинациями в Python.
  5. Удаление файлов и папок в Python
  6. Операции с массивами в NumPy
  7. Функция с *args.
  8. Работа с часовыми поясами в Python
  9. Динамическая типизация в Python
  10. Библиотека Emoji: использование смайлов в Python
  11. Функция reduce() из модуля functools
  12. Создание словарей с defaultdict
  13. Оптимизация параметров в Python
  14. Переопределение метода __lshift__
  15. Функции высшего порядка в Python
  16. Логирование с Logzero
  17. Создание функций с произвольным количеством аргументов
  18. Работа с модулем cmath
  19. Замеры производительности в Python
  20. Форматирование объектов с модулем pprint
  21. Преобразование числа в список цифр
  22. Форматирование строк в Python
  23. Путь к интерпретатору Python
  24. Генераторы по генератору
  25. Освобождение памяти в Python
  26. Преобразование многоуровневого словаря
  27. Обработка ошибок ввода данных
  28. Отслеживание выполнения программы с библиотекой tqdm
  29. Использование type hints
  30. Проверка переменных окружения в Python
  31. Мониторинг памяти с Pympler
  32. Обрезка изображения с Pillow
  33. Списки в Python
  34. Отправка HTTP-запросов с User-Agent
  35. Работа с GitHub в Telegram
  36. Профилирование данных с Pandas
  37. Переменная Шредингера
  38. Поиск самого частого элемента
  39. Копирование объектов в Python
  40. Закрытие файла в Python
  41. Функции с необязательными аргументами
  42. Преобразование символов с помощью map
  43. Удаление элемента по индексу в Python

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