Курс 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. Создание новых функций с помощью functools.partial
  3. Объединение словарей в Python
  4. Манипуляция формой массива в Numpy
  5. Очистка вывода в Python
  6. ChainMap избыточные ключи
  7. Работа с массивами в Python
  8. Добавление элементов в список: append() vs extend()
  9. Функции высшего порядка в Python
  10. Оператор is в Python
  11. Аннотации типов в Python
  12. Основы Python
  13. Создание таблиц в Python с PrettyTable
  14. Разделение строк в Python
  15. Работа с SQLite в Python
  16. Измерение времени выполнения кода
  17. Тестирование с responses
  18. Функция map() в Python
  19. Установка и загрузка Instaloader
  20. Руководство по библиотеке pydantic
  21. Группы исключений в Python
  22. Использование функции enumerate()
  23. Метод ifloordiv для пользовательских классов
  24. Принципы Zen Python
  25. Модуль pprint
  26. Получение комбинаций в Python
  27. Удаление дубликатов из списка
  28. Секреты Python
  29. Декораторы в Python
  30. Печать календаря
  31. Обновление ключей в Python
  32. Работа с файлами в Python
  33. Проверка условий: all и any
  34. Вывод сложных структур данных с помощью pprint
  35. Работа с часовыми поясами в Python.
  36. Создание виртуальной среды
  37. Типы возвращаемых значений в Python
  38. Множественные конструкторы в Python
  39. Оптимизация методов в Python 3.7
  40. Удаление специальных символов
  41. Переопределение метода sub
  42. Работа со строками в Python.
  43. Генерация QR-кодов с библиотекой qrcode
  44. Оптимизация памяти с __slots__

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