Курс 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. Тестирование с responses
  2. Декораторы в Python
  3. Решатель судоку на Python с pygame
  4. Функция map() и ленивая оценка
  5. Генераторы списков в Python
  6. Добавление вложенных списков
  7. Объединение, распаковка и деструктуризация
  8. Переопределение метода
  9. Удаление символа из строки
  10. Работа с типами данных в Python с помощью pydantic.
  11. Экспорт внешнего файла с помощью writefile
  12. Метод matmul для умножения матриц
  13. Открытие и запись файлов
  14. Преобразование документов в PDF с помощью Spire.Office
  15. Удаление первого элемента списка
  16. Условные выражения в Python
  17. Работа с IP-адресами в Python
  18. Измерение времени выполнения кода
  19. Работа со временем в Python
  20. Измерение времени выполнения с помощью time
  21. Оптимизация создания строк
  22. Копирование объектов в Python
  23. Создание копии списка в Python
  24. Непрерывная проверка в Python
  25. Разделение строки в Python
  26. Нахождение пересечения множеств
  27. Шаблоны Flask: условия и циклы
  28. Метод enumerate() в Python
  29. Обмен значений переменных в Python
  30. Установка максимального количества цифр
  31. Функция zip() в Python
  32. Работа с комплексными числами
  33. Получение частей дроби
  34. Построение графиков в терминале с bashplotlib
  35. Распаковка значений в Python
  36. JSON в Python: модуль, dump, dumps, load
  37. Дизассемблирование Python кода
  38. Перевод двоичного кода в целое число
  39. Работа с географическими данными в Python
  40. Улучшенные подсказки для импорта в Python 3.12
  41. Декораторы для регистрации функций
  42. Создание комплексных чисел
  43. Применение функции к элементам списка
  44. Работа с модулем random

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