Курс 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. Функция enumerate() в Python
  6. ChainMap избыточные ключи
  7. Изменение списка срезами
  8. Установка Python3.7 и PIP
  9. Нахождение пересечения множеств
  10. Python Метод sleep() времени
  11. Работа с WindowsPath()
  12. Фильтрация последовательности
  13. Безопасный доступ к значениям словаря
  14. Метод join() для объединения элементов строки
  15. Принципы SRP и OCP
  16. Преобразование текста в речь с Python
  17. Управление виртуальными средами в Python
  18. Сравнение неупорядоченных списков
  19. Beautiful Soup — извлечение данных из HTML
  20. Чтение бинарного файла в Python.
  21. Сравнение def и lambda-функций
  22. Создание словаря через dict comprehension
  23. Работа с буфером обмена на Python
  24. Генераторы в Python
  25. Объединение списков в строку
  26. Множественное присваивание в Python
  27. Удаление элементов из списка в Python
  28. Проверка кортежей.
  29. Метод rsub для пользовательских чисел
  30. Python Поверхностное Копирование
  31. Декораторы в Python
  32. Блок else в циклах Python
  33. Объединение, распаковка и деструктуризация
  34. Метод title() в Python
  35. Сортировка слиянием
  36. Измерение времени выполнения кода
  37. Повторение и перенос строки
  38. Преобразование числа в восьмеричную строку
  39. Многострочные комментарии в Python
  40. Функции высшего порядка в Python
  41. Проверка элементов списка условием
  42. Создание GUI с Tkinter: Entry
  43. Создание новых функций с помощью functools.partial
  44. Создание класса в Python
  45. Вычисление натуральных логарифмов в NumPy
  46. Очистка вывода в Python
  47. Преобразование в float
  48. Удаление элементов из списка

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