Курс 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
  2. Создание списков в Python
  3. Сравнение строк в Python
  4. Метод append() для списка
  5. Условные выражения в Python
  6. Работа с YAML в Python
  7. Автоматизация с Python
  8. Преобразование многоуровневого словаря
  9. Разделение строки на подстроки в Python
  10. Создание namedtuple списком полей
  11. Разработка Telegram-ботов
  12. Создание namedtuple из словаря
  13. Библиотека wikipedia для Python
  14. Основные операции с Numpy
  15. Работа с прокси в Python
  16. Ввод нескольких значений
  17. Проверка типа объекта в Python
  18. Оператор объединения словарей
  19. kwargs в Python
  20. Операторы += в Python
  21. Порядок и длина множеств в Python
  22. Оператор del в Python
  23. Python: библиотеки и функции
  24. Измерение времени выполнения кода с помощью time
  25. Генераторные выражения и islice.
  26. Построение графиков в Matplotlib
  27. Оператор break в Python
  28. Получение текущей даты и времени с помощью datetime
  29. Метод join для объединения строк
  30. Непрерывная проверка в Python
  31. Функции map, filter, reduce
  32. Применение функции map() с лямбда-функциями
  33. Переопределение метода sub
  34. Создание и инициализация объектов
  35. Работа с Enum в Python3.
  36. Обработка исключений с блоком else
  37. Лямбда-функции в Python
  38. Генераторы в Python
  39. Создание словарей с defaultdict
  40. Тестирование функции сложения
  41. Пропуск строк в файле с itertools
  42. Участие в сообществе @selectel
  43. Безопасные SQL-запросы в Python 3.11
  44. Сравнение def и lambda функций в Python
  45. Разделение строки с помощью split()
  46. Python Метод del.
  47. Использование функции enumerate()
  48. Скачать видео с YouTube

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