Курс 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
  2. Синхронизация потоков с time.sleep()
  3. Метод hash в Python
  4. Путь к интерпретатору Python
  5. Сортировка данных в Python
  6. Переопределение оператора % для объектов
  7. Фильтрация элементов с помощью islice
  8. Управление контекстом выполнения кода
  9. Работа с срезами в Numpy
  10. Профилирование данных с Pandas.
  11. Проверка подстроки в строке
  12. Генерация фальшивых данных с Faker
  13. Протокол управления контекстом
  14. Замена переменных в Python
  15. Создание Telegram-бота на Python
  16. Работа с PosixPath() в Python
  17. Динамическая типизация в Python
  18. Метод join для наборов
  19. Добавление Progressbar в Python
  20. Особенности множеств в Python
  21. Python: библиотеки и функции
  22. Многострочные строки в Python
  23. Определение локальных переменных в Python
  24. Значения по умолчанию в Python
  25. Применение промокода в Много лосося
  26. Mad Libs Generator
  27. Функции в Python
  28. Python Метод sleep() из time
  29. Сокращение ссылок с pyshorteners
  30. Оптимизация сравнения в Python
  31. Создание словарей в Python
  32. Возврат нескольких значений
  33. Аннотации типов в Python
  34. Объединение кортежей в Python
  35. Управление мышью и клавиатурой с Pyautogui
  36. Оптимизация поиска в словарях
  37. Взаимодействие с внешними процессами в Python
  38. Нахождение отличий в списках
  39. Отправка поздравлений по дню рождения
  40. Константы в модуле cmath
  41. Инвертирование словаря
  42. Методы shutil для работы с файлами
  43. Форматирование строк в Python
  44. Установка и использование howdoi
  45. Типы возвращаемых значений в Python
  46. Упрощение работы с JSON-данными в Python
  47. GitHub в Telegram: подписка на уведомления

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