Курс 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. Создание GUI на Tkinter
  2. Многопоточность в Python
  3. Удаление эмодзи с помощью pandas
  4. Функции map, filter, reduce
  5. Запуск Python из интерпретатора
  6. Правила именования переменных
  7. Работа с YAML в Python
  8. Область видимости переменных
  9. Преобразование букв в нижний регистр
  10. Статическая типизация в Python
  11. Комментарии в Python
  12. Удаление пробелов методом translate()
  13. Расширение операции побитового «и» в Python
  14. Установка и обучение ChatterBot
  15. Хеширование паролей с солью
  16. Синхронизация доступа к ресурсам
  17. Метод pos в Python
  18. Использование html-скриптов в Jupyter Notebook
  19. Метод count() для списка
  20. Создание и операции с дробями
  21. Комментарии в Python
  22. Многострочные комментарии в Python
  23. Блок else в циклах Python
  24. Объединение словарей в Python
  25. Генерация случайных данных в NumPy
  26. Визуализация пропусков данных
  27. Управление IP-адресами через прокси
  28. Изменение переменной в Python: nonlocal
  29. Создание комплексных чисел
  30. Метод lt для сортировки объектов
  31. Оптимизация памяти с slots
  32. Атрибуты класса и экземпляра
  33. Обход дочерних элементов BeautifulSoup
  34. Bootle — простой веб-фреймворк
  35. Удаление ключа из словаря
  36. Многострочные комментарии в Python
  37. Многострочные комментарии в Python
  38. Отправка POST-запроса в REST API
  39. Установка и использование Logzero
  40. Оператор assert в Python
  41. Генераторы в Python
  42. Делегирование в Python
  43. Отладка регулярных выражений в Python
  44. Математические функции в Python
  45. Сортировка и разворот списка

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