Курс 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. Работа с пользовательским вводом
  2. Декораторы с аргументами
  3. Преобразование строки в число
  4. Работа с модулем cmath
  5. Блок try…finally в Python
  6. Анализ кода — Python
  7. Переопределение метода xor в Python
  8. Срезы в Numpy
  9. Роль запятой в Python
  10. Функция zip() для объединения списков
  11. Область видимости переменных
  12. Аргументы *args и **kwargs
  13. Добавление Progressbar в Python
  14. Сортировка с помощью key
  15. Генераторные выражения и islice.
  16. Метод matmul для умножения матриц
  17. Управление памятью в Python
  18. Операторы сравнения в Python
  19. Функция all() в Python
  20. Создание тестовых данных с Faker
  21. Перевод двоичного кода в целое число
  22. None в Python: использование и особенности
  23. Переопределение метода len
  24. Python enumerate() для работы с индексами
  25. Модуль math: основные функции
  26. Генераторы списков
  27. Удаление элементов из списка в Python.
  28. Функция product() в Python
  29. Переопределение оператора % для объектов
  30. Создание пользовательской коллекции в Python
  31. Метод ior для битовых операций
  32. Возврат нескольких значений
  33. Фильтрация входных данных в Python
  34. Оформление кода по PEP 8
  35. Отправка HTTP-запросов в Python
  36. Математические функции в Python
  37. Тернарный оператор в Python
  38. Расчет времени выполнения
  39. Оптимизация памяти с __slots__
  40. Открытие и запись файлов
  41. Счетчик ссылок в Python
  42. Метод split() для разделения строк
  43. Создание спинбокса в tkinter
  44. Принцип одной функции
  45. Декораторы в Python
  46. Оператор объединения словарей
  47. Умножение строк и списков

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