Курс 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. Проектирование Singleton с метаклассом
  2. Список импортированных модулей в Python
  3. Именованные срезы в Python
  4. Мониторинг работы программы Py-spy
  5. Удаление элемента из списка в Python
  6. Ускорение обработки данных с %autoawait
  7. Обработка элементов в Python
  8. Сглаживание списка
  9. Введение в Python
  10. Оператор Walrus: правильное использование
  11. Установка Git и AWS CLI
  12. Замена символов в строке
  13. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  14. Копирование в Python
  15. Сравнение строк в Python
  16. Метод index() в Python
  17. Работа с словарями в Python
  18. Генерация случайных чисел Python
  19. Работа с датой и временем в Python
  20. Округление дробей в Python
  21. Исправление ошибки NameError
  22. Функции с дополнением
  23. Объединение словарей в Python
  24. Проверка кортежей.
  25. Шаблоны Flask: условия и циклы
  26. Проверка типов с помощью isinstance
  27. Стать Python-разработчиком
  28. Оформление кода по PEP 8
  29. Работа с zip-архивами в Python
  30. Форматирование данных с помощью pprint
  31. Переворот строки с использованием цикла
  32. Отделение звука от видео
  33. Делегирование в Python
  34. Создание namedtuple списком полей
  35. Объединение списков в строку
  36. Сравнение def и lambda функций в Python
  37. Конкатенация строк с методом join()
  38. Библиотека funcy: удобные утилиты
  39. Создание лямбда-функций
  40. Получение значений из словарей
  41. Оператор @ для умножения матриц
  42. Блок try-except-else
  43. Работа с индексами списков
  44. Добавление элементов в список
  45. Область видимости переменных

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