Курс 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. Оператор «is not» в Python
  4. Numpy: использование Ellipsis
  5. Хранение переменных в Python.
  6. Работа с очередями в Python
  7. Оптимизация методов в Python 3.7
  8. Счетчик в Python: most_common()
  9. Обработка ошибок ввода данных
  10. Проверка наличия элемента в списке
  11. Numpy: разбиение массивов
  12. Автоматизация действий с Pyautogui
  13. Работа с массивами в Python
  14. Модуль inspect: получение информации о объектах
  15. Создание списков в Python
  16. Конкатенация строк с помощью join()
  17. Присоединение элементов коллекции
  18. Использование обратной косой черты в f-строках
  19. Работа с асинхронными задачами в Python
  20. Метод get() в Python
  21. Использование html-скриптов в Jupyter Notebook
  22. Использование двоеточия в Python
  23. Установка и использование Python-dateutil
  24. Многопоточность и асинхронное программирование в Python
  25. Проверка строки на палиндром
  26. Атрибуты класса и экземпляра в Python
  27. Нахождение хеша для бесконечности и NaN в Python
  28. Функция map() в Python
  29. Проблема с изменяемыми аргументами
  30. Создание копии списка в Python
  31. Обработка исключений в Python
  32. Использование функции enumerate()
  33. Progress с библиотекой tqdm
  34. Python enumerate() функции
  35. Работа с контекст-менеджером «with»
  36. Работа с изменяемыми списками
  37. Создание новой даты в Python
  38. Измерение времени выполнения кода
  39. Удаление дубликатов из списка
  40. Работа с JSON в Python
  41. Метод __index__ в Python
  42. Итерация по копии коллекции
  43. Управление User-Agent в Python
  44. Создание класса в Python
  45. Принципы программирования
  46. Создание матрицы в Python

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