Курс 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. Генерация резюме в Gensim
  2. Деление в Python
  3. Модуль os в Python: работа с файлами
  4. Отрицательные индексы списков в Python
  5. GitHub в Telegram: подписка на уведомления
  6. Создание директории в Python
  7. Python OrderedDict и fromkeys() — работа с словарями
  8. Лямбда-функции в цикле
  9. Упрощение работы с JSON-данными в Python
  10. Многострочные комментарии в Python
  11. Философия Python
  12. Замена подстроки
  13. Генераторы данных
  14. Итерация по копии коллекции
  15. Генераторы списков
  16. Monkey Patching в Python
  17. Удаление элемента по индексу в Python
  18. Декоратор Property в Python
  19. Codecademy в Telegram
  20. Возврат нескольких значений
  21. Конкатенация строк с методом join()
  22. Визуализация пропусков данных
  23. Построение графиков в терминале с bashplotlib
  24. Удаление элемента из списка
  25. Кортежи в Python: особенности и преимущества
  26. Потоковый ввод в Python
  27. Установка Home Assistant
  28. Удаление элемента из списка в Python
  29. Метод gt в Python
  30. Обработка элементов в Python
  31. Создание вложенного генератора
  32. Переопределение метода len
  33. Получение текущей даты и времени с помощью datetime
  34. Списковые включения в Python
  35. Переопределение метода
  36. Декораторы классов
  37. Работа с defaultdictами в Python
  38. Сокращение ссылок с pyshorteners
  39. Работа со строками в Python
  40. Форматирование строк в Python
  41. Python Тесты и Гайды
  42. Установка пакетов с помощью pip
  43. Извлечение чисел из текста
  44. Анализ кода — Python
  45. Метод index() в Python
  46. Python Метод sleep() времени
  47. Циклы for в Python
  48. Отладка в Python

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