Курс 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. Метод setdefault() в Python
  2. Замена текста с помощью sub
  3. Операции с числами в Python
  4. %pinfo: получение информации об объекте
  5. Функциональное программирование.
  6. Списковое включение в Python
  7. Заказ карты Тинькофф Black
  8. Справка по импортированным модулям
  9. Операторы объединения в Python 3.9
  10. Лямбда-функции в Python
  11. Списки: объединение, изменение
  12. Логирование с Logzero: ротация файла
  13. Определение относительного пути
  14. Разрешение имен в Python
  15. Асинхронный код в Python
  16. Множественное назначение в Python
  17. ChainMap избыточные ключи
  18. Удаление символа из строки
  19. Сортировка списка по индексам
  20. Работа с deque из collections
  21. Разработка игры Pong с turtle
  22. Создание матрицы в Python
  23. Вызов функций по строке в Python.
  24. Python и Юникод: работа с цифрами
  25. Преобразование объекта в строку
  26. Создание Telegram-бота на Python
  27. История Python
  28. Модуль pprint
  29. Повторение элементов в Python
  30. Оптимизация памяти с slots
  31. Форматирование строк с % в Python
  32. Особенности множеств в Python
  33. Работа с срезами в Numpy
  34. Удаление элементов во время итерации
  35. Основные операции с библиотекой Numpy
  36. Установка и использование библиотеки google
  37. Метод __irshift__ для побитового сдвига вправо
  38. Метод join для наборов
  39. Работа с географическими данными в Python
  40. Обработка исключений в Python
  41. Разделение строки с помощью re.split()
  42. Возврат нескольких значений
  43. Сокращение ссылок с pyshorteners

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