Курс 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. Метод count() для списков
  2. Фильтрация последовательности
  3. Подсчет элементов с помощью Counter из collections
  4. Использование super() в Python
  5. Форматирование заголовков в Python
  6. Оптимизация гиперпараметров с Scikit Optimize
  7. Python Аргументы по умолчанию
  8. Python Метод del.
  9. Оптимизация поиска в словарях
  10. CSV строка разделение в Python
  11. Цикл for в Python
  12. Передача словаря через **kwargs
  13. Работа с процессами в Python
  14. GitHub в Telegram: подписка на уведомления
  15. Генератор данных в Keras
  16. Переопределение метода
  17. Класс Counter() для подсчета элементов
  18. Форматирование строк в Python
  19. Переворот строки с использованием цикла
  20. Синхронизация доступа к ресурсам
  21. Однострочники Python
  22. Разделение строки с помощью split()
  23. Объединение списков с использованием itertools.chain
  24. Автоматизация скриптов на AWS Lightsail.
  25. Взаимодействие с внешними процессами в Python
  26. Получение пути к текущему скрипту с помощью os
  27. lru_cache оптимизация функций
  28. Тестирование модели в PyTorch
  29. Оптимизация создания строк
  30. Управление ресурсами с контекстными менеджерами
  31. Автоматизация с Python
  32. Метод __index__ в Python
  33. Списковое включение в Python
  34. Списковое включение в Python
  35. Работа с рекламными данными в Pandas
  36. Методы __repr__ и __str__ в Python
  37. Проблема сравнения словарей
  38. Генерация чисел с range()
  39. Расчет времени выполнения
  40. Вывод переменной и строки в Python
  41. Функция enumerate в Python
  42. Перетасовка списков в Python
  43. Просмотр файла в Jupyter Noteboo
  44. Декораторы для регистрации функций
  45. Генерация фальшивых данных с Faker
  46. Преобразование типов данных в set comprehension
  47. Переопределение метода xor в Python
  48. Печать календаря в Python

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