Курс 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. Добавление элемента в список.
  4. Распаковка аргументов в Python
  5. Поиск индексов в списке
  6. Работа с WindowsPath()
  7. Работа со слайсами
  8. Аннотации типов в Python
  9. Пропуск строк в файле с itertools
  10. Проблемы с именами переменных
  11. Метод rmatmul для обратного матричного умножения
  12. Работа с типами данных в Python с помощью pydantic.
  13. Команда %dhist — список посещенных каталогов
  14. Именованные срезы в Python
  15. Функция sleep() в Python
  16. Сортировка данных с лямбда-функциями
  17. Игра «Камень, ножницы, бумага» — Python
  18. Возврат нескольких значений
  19. Нарезка списков в Python
  20. Форматирование строк в Python
  21. Конструктор в Python
  22. Класс UserDict: дополнительная функциональность
  23. Контроль точности вывода чисел
  24. Перевод текста с Python Translator
  25. Получение текущей даты и времени с помощью datetime
  26. Создание виртуальной среды
  27. Метод add для класса Vector
  28. Оператор continue в Python
  29. Вывод букв строки в Python
  30. Переопределение метода __pow__
  31. Flask: создание веб-приложений
  32. Вложенные циклы в Python
  33. Модуль inspect
  34. Приближение чисел в Python
  35. Работа с SQLite в Python
  36. Модуль Antigravity в Python 3
  37. Измерение времени выполнения кода с использованием time
  38. Выражения-генераторы в Python
  39. Подсчет элементов в Python
  40. Получение текущей даты и времени
  41. Импорт и использование модулей в Python
  42. Сравнение def и lambda в Python
  43. Передача аргументов через **arguments
  44. Множества и frozenset
  45. Правила именования переменных
  46. Работа с itertools
  47. Работа с итераторами в Python
  48. Метод ior для битовых операций

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