Курс 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. Оптимизация памяти с slots
  2. Разработка игры Pong с turtle
  3. Хеши в Python
  4. Метод Event.wait() в Python
  5. Применение функции к списку
  6. Объединение множеств в Python
  7. Отладка утечек памяти в Python
  8. Декодирование байтов в строку
  9. Генерация случайных чисел в Python
  10. Навыки Python: строки, типы данных
  11. Работа с изменяемыми списками
  12. Создание Telegram-бота на Python
  13. Метод get для словаря
  14. Объявление переменных в Python
  15. Декораторы в Python
  16. Оператор continue в Python
  17. Проверка на палиндром
  18. Удаление элемента из списка
  19. Функция enumerate() в Python
  20. Изучение объектов с помощью dir()
  21. Генераторы в Python
  22. Частичное применение функций в Python
  23. Операции с числами в Python
  24. Получение ID процесса
  25. Работа с GitHub в Telegram
  26. Оператор «not» в Python
  27. Метод difference_update() — разность множеств
  28. Поиск индексов подстроки
  29. Управление мышью и клавиатурой с Pyautogui
  30. Нахождение максимального значения и его индекса в списке
  31. Обмен значений переменных в Python
  32. Удаление ключа из словаря в Python
  33. Оператор in в Python
  34. Локальные переменные.
  35. Комментарии в Python
  36. Pillow: работа с изображениями
  37. Concrete Paths — метод .with_suffix()
  38. Очистка вывода в Python
  39. Функциональное программирование.
  40. Принцип одной функции
  41. Отношения подклассов в Python
  42. Сортировка элементов в Python
  43. Создание вложенного генератора

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