Курс Python → Проверка запуска скрипта или импорта модуля

В процессе разработки на Python очень часто возникает необходимость различать, запущен ли скрипт напрямую или импортирован как модуль в другой файл. Это особенно актуально при создании библиотек и модулей, где вы хотите предоставить пользователю доступ к функциям и классам, но при этом избежать выполнения определенного кода при импорте. Python предоставляет удобный способ проверки этого с помощью специальной переменной __name__.

Когда вы запускаете Python-файл напрямую, интерпретатор устанавливает значение переменной __name__ равным "__main__". Это позволяет вам написать условие, которое будет проверять, запущен ли скрипт напрямую. Если это так, вы можете выполнять определенные действия, такие как запуск тестов, вывод информации или выполнение основной логики программы. В противном случае, если файл импортирован как модуль, переменная __name__ будет содержать имя модуля, и код внутри блока не будет выполнен.

Рассмотрим простой пример, чтобы проиллюстрировать это. Предположим, у нас есть файл example.py, который содержит функцию, выводящую приветственное сообщение, и код, который должен выполняться только при прямом запуске:

def greet():
    print("Привет, мир!")

if __name__ == "__main__":
    greet()
    print("Этот код выполняется только при прямом запуске.")

Если вы запустите файл example.py напрямую, вы увидите следующий вывод:

Привет, мир!
Этот код выполняется только при прямом запуске.

Однако, если вы импортируете его в другой файл, например, в main.py, и вызовете функцию greet(), код под условием if __name__ == "__main__": не выполнится:

# main.py
import example

example.greet()

При запуске main.py вы получите следующий вывод:

Привет, мир!

Таким образом, использование переменной __name__ позволяет вам изолировать код, который не должен выполняться при импорте, обеспечивая большую модульность и чистоту вашего кода. Это является хорошей практикой в Python-разработке и помогает избежать неожиданных побочных эффектов при использовании ваших модулей в других проектах.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Обработка ошибок в Python
  2. Генераторные выражения и islice.
  3. Базовые объекты Python
  4. Получение текущей даты и времени с помощью datetime
  5. Проверка строки на палиндром
  6. Принципы SRP и OCP
  7. Проверка дублей в списке.
  8. Объединение списков в Python
  9. Проверка вхождения подстроки
  10. Применение команды break
  11. Капитализация строк
  12. Раздувающийся словарь в Python
  13. Переопределение метода xor в Python
  14. Методы сравнения множеств
  15. Установка максимального количества цифр
  16. Преобразование документов в PDF с помощью Spire.Office
  17. Распаковка аргументов в Python
  18. Условные выражения в Python
  19. Функции map, filter, reduce
  20. Оператор умножения для вектора
  21. Бесконечная проверка в Python
  22. Хранение данных с помощью dataclasses
  23. Работа с Requests для HTTP-запросов
  24. Экспорт данных в файл.
  25. Цикл for в Python
  26. Присвоение и ссылки
  27. Роль запятой в Python
  28. Закрытие файла в Python
  29. Упрощение условных выражений с тернарным оператором
  30. Python: отсутствие точек с запятыми
  31. Numpy: использование Ellipsis
  32. Howdoi — получение ответов из терминала
  33. Расчет времени выполнения программы
  34. Ускоренный импорт библиотек
  35. Сравнение объектов в Python
  36. Условные выражения в Python
  37. Конвертация текстовых чисел с помощью Numerizer
  38. Ускорение обработки данных с %autoawait
  39. Создание и обучение модели с Keras
  40. Преобразование многоуровневого словаря
  41. Протокол управления контекстом
  42. Уникальность ключей в словаре
  43. Отладка производительности Python
  44. Удаление элементов из списка
  45. Работа с переменными в Python
  46. Метод rxor для операции побитового исключающего «или»
  47. Переворот строки
  48. Сохранение Unicode в JSON
  49. Метод __float__ в Python

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