Курс 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. Использование html-скриптов в Jupyter Notebook
  2. Основы работы с базами данных в Python
  3. Создание файла с проверкой ошибки
  4. Python Enumerate
  5. Python Поверхностное Копирование
  6. Работа с индексами списков
  7. Многопоточность и асинхронное программирование в Python
  8. Проверка дубликатов в Python
  9. Логирование с Logzero
  10. Импорт классов из другого файла
  11. Работа с множествами в Python
  12. Форматирование чисел в Python
  13. Создание новых списков в Python
  14. Измерение времени выполнения кода с использованием time
  15. Делегирование в Python
  16. Сумма элементов списка
  17. Переворот списка в Python
  18. Python reversed() функция
  19. Оператор is в Python
  20. Оператор Walrus в Python 3.8
  21. Установка и обучение ChatterBot
  22. Работа с контекстными переменными
  23. Операции со строками в Python
  24. Декоратор Ajax required
  25. Принцип одной функции
  26. Наиболее частотные элементы с помощью Counter
  27. Очистка данных с Pandas
  28. Преобразование строк в числа с плавающей запятой
  29. Форматирование строк в Python
  30. Создание веб-приложения с Flask
  31. Экспорт внешнего файла с помощью writefile
  32. Методы classmethod и staticmethod
  33. Работа со стеком в Python
  34. Построение графиков в терминале с bashplotlib
  35. Дефолтные параметры в Python
  36. Генераторы данных
  37. Комплексные числа в Python
  38. Динамическая типизация в Python
  39. Метод setitem в Python
  40. Конвертация изображений в PDF
  41. Работа с необработанными строками
  42. Разделение строки с помощью split()
  43. Удаление эмодзи с помощью pandas
  44. Вложенные циклы в Python
  45. Поиск шаблона в начале строки
  46. Динамическая типизация в Python

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