Курс 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. Реализация метода __abs__ в Python
  2. Любовь к Python
  3. Поиск индекса элемента в списке
  4. Цикл for с enumerate() в Python
  5. Создание директории в Python
  6. Считывание бинарного файла в Python
  7. TON Smart Challenge #2: участие и подготовка
  8. Работа с collections.Counter
  9. Переопределение метода delitem в Python
  10. Создание новых списков
  11. Форматирование даты с strftime()
  12. Нахождение максимального значения и его индекса в списке
  13. Проверка вхождения подстроки
  14. Создание и операции с дробями
  15. Генераторы списков в Python
  16. Функция zip() в Python
  17. Модуль subprocess: запуск внешних команд
  18. Инверсия списков и строк в Python
  19. Concrete Paths в Python
  20. Получение текущей даты и времени
  21. Рациональные числа в Python
  22. Отношения подклассов в Python
  23. Работа со словарями Python
  24. Оптимизация методов в Python 3.7
  25. Объединение коллекций в Python
  26. Очистка входных данных
  27. Структура данных словарь в Python
  28. Метод getitem для доступа к элементам последовательности
  29. Управление памятью в numpy.
  30. Поиск шаблона в начале строки
  31. Конкатенация строковых литералов
  32. Работа с утверждениями в Python
  33. Приоритет операций в Python
  34. Лямбда-функции в defaultdict
  35. Операция += для списков
  36. Создание Radio кнопок в tkinter
  37. Повторение и перенос строки
  38. Основные операции с библиотекой Numpy
  39. Обработка аргументов Python
  40. Поиск самого частого элемента
  41. Аннотации типов в Python
  42. Изменение списка срезом
  43. Модуль subprocess: запуск внешних команд
  44. f-строки в формате строк
  45. Ускорение обработки данных с %autoawait
  46. Преобразование данных в Python

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