Курс 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 reversed() vs срез[::-1]
  2. Удаление эмодзи с помощью pandas
  3. Оператор морж в Python 3.8
  4. Обязательные аргументы в Python
  5. Игра «Виселица» на Python
  6. Проверка вхождения подстроки
  7. Скрытие вывода данных
  8. Нахождение разницы между списками в Python
  9. Пропуск строк в файле с itertools
  10. Копирование списков в Python
  11. Метод rename() для переименования файлов и каталогов
  12. Функции в одну строку
  13. Python Метод Union Множеств
  14. Преобразование списка в словарь через генератор
  15. Генераторы списков в Python
  16. Создание задания в Cron
  17. Обработка элементов в Python
  18. Изменения в обработке логических значений
  19. Возврат нескольких значений
  20. Управление мышью и клавиатурой с Pyautogui
  21. Открытие и редактирование скриптов Python
  22. Вывод с переменной через запятую
  23. Печать в одной строке
  24. Работа со списками
  25. Получение значений из словарей
  26. Concrete Paths — метод .with_suffix()
  27. Поток данных в Python
  28. Декораторы в Python
  29. Удаление ключей из словаря
  30. Метод join() с набором
  31. Сериализация данных в JSON с помощью json.dumps
  32. Поиск шаблона в строке
  33. Измерение времени выполнения
  34. Наиболее частотные элементы с помощью Counter
  35. Преобразование строки в число
  36. Раздувающийся словарь в Python
  37. Lambda-функция в Python: использование с map() и sum()
  38. Подсчет элементов в Python
  39. Множественные конструкторы в Python
  40. Работа с процессами в Python
  41. Метод eq для сравнения объектов
  42. Бесконечная проверка в Python
  43. Создание виртуальной среды
  44. Работа с файлами в Python
  45. Множественное назначение в Python
  46. Проверка кортежей.

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