Курс 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. Работа с defaultdictами в Python
  2. Оператор space-invader
  3. split() без разделителя
  4. Работа с кортежами
  5. JSON в Python: модуль, dump, dumps, load
  6. Работа с датой и временем в Python
  7. Мощь вложенных функций в Python
  8. Операции со строками в Python
  9. Список переменных с %who
  10. Создание лямбда-функций
  11. Назначение максимального и минимального значения переменной в Python.
  12. Транспонирование матрицы в Python
  13. Генераторы в Python
  14. Создание списка через итерацию
  15. Подсчет элементов в Python
  16. Numpy: объединение массивов
  17. Разрешение имен в Python
  18. Тип CodeType в Python.
  19. Инициализация структур данных
  20. Работа со строками в Python
  21. Метод __ixor__ для побитового исключающего ИЛИ
  22. Многопоточность и асинхронное программирование в Python
  23. Множества и frozenset
  24. Измерение времени выполнения кода
  25. Добавление цвета в консоли
  26. Метод get() для словарей
  27. Установка и загрузка Instaloader
  28. Оператор break в Python
  29. Нахождение максимального значения и его индекса в списке
  30. JMESPath в Python
  31. Декораторы в Python
  32. Фильтрация последовательности
  33. Работа с Colorama
  34. Создание GUI на Tkinter
  35. Генерация строк с .join()
  36. Переопределение метода __eq__
  37. Получение идентификатора объекта в памяти
  38. Обход дочерних элементов BeautifulSoup
  39. Python: отличительная особенность — отступы
  40. Передача аргументов через **arguments
  41. Оптимизация памяти с __slots__
  42. Отладчик pdb: начало работы
  43. Сортировка в Python

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