Курс 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 в Telegram
  2. Создание объекта timedelta
  3. Многопроцессорное программирование в Python
  4. Методы classmethod и staticmethod
  5. Декораторы с аргументами
  6. Навыки Python: строки, типы данных
  7. GitHub в Telegram: подписка на уведомления
  8. Проверка элемента в множестве.
  9. Генераторы списков
  10. Частичное применение функций в Python
  11. Работа с итераторами в Python
  12. Сортировка в Python
  13. Область видимости переменных
  14. Получение ID процесса
  15. Форматирование объектов с модулем pprint
  16. Удаление файлов и папок в Python
  17. Поиск кода
  18. Принципы программирования
  19. Экспорт данных с помощью writefile
  20. Работа с файлами в Python
  21. Оператор «or» в Python
  22. Фильтрация данных в Python.
  23. Прокачанный трейсинг ошибок
  24. Работа с библиотекой requests
  25. Хэш-функции в Python
  26. Транспонирование 2D-массива с помощью zip
  27. Копирование словарей и списков в Python
  28. Работа с контекстными менеджерами
  29. Любовь к Python
  30. Работа с атрибутом dict
  31. Сравнение def и lambda функций в Python
  32. Принципы LSP и ISP в Python
  33. Обновление шаблона base.html
  34. Преобразование строк в числа в Python
  35. Структура данных deque в Python
  36. Работа с комплексными числами
  37. Форматирование строк в Python
  38. Строковое представление объектов
  39. Python UserString — создание подклассов строк
  40. Введение в Python
  41. Работа с контекстным менеджером Pool
  42. Отладка кода
  43. Логические значения в Python
  44. Работа с временем в Python
  45. Генератор надежных паролей
  46. Слияние словарей в Python 3.9

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