Для чего нужен код if __name__ == “__main__”

Для понимания сути if __name__ == “__main__” нам надо разобраться что такое скрипт и модуль.

В Python есть два основных способа организации кода – скрипты и модули.

Вот основные отличия:

  • Скрипт – это просто файл с расширением .py, содержащий код на Python. Скрипты предназначены для непосредственного выполнения.
  • Модуль – это также файл с расширением .py, но он содержит функции, классы и другие объекты, предназначенные для импорта и использования в других скриптах или модулях. Модули не предназначены для непосредственного выполнения.
  • Скрипт выполняется от начала до конца. Модуль импортируется другим кодом, и выполняются только те его части, которые импортированы.
  • Из модуля импортируют отдельные функции, классы или переменные. Весь код модуля при импорте не выполняется.
  • Модули могут содержать функции, классы и код, предназначенные для многократного использования в других программах. Скрипты обычно решают какие-то конкретные одноразовые задачи.
  • Модули позволяют организовать код по функциональным блокам и повторно использовать его. Скрипты не предполагают повторного использования кода.

Таким образом, модули – это библиотеки кода для решения отдельных задач, а скрипты – исполняемые программы для конкретных целей.

Конструкция if __name__ == “__main__” в Python используется для того, чтобы задать условие выполнения какого-то кода только тогда, когда модуль запущен напрямую, а не импортирован из другого модуля.

Когда интерпретатор Python импортирует модуль, он задаёт для него специальную внутреннюю переменную name.

Если модуль запущен напрямую для выполнения скрипта, то name будет равна “main”. Если же модуль импортирован в другом модуле для использования, name получит имя этого модуля.

Таким образом, конструкция if __name__ == “__main__” позволяет определить – запущен ли данный файл модуля напрямую или импортирован, и выполнять разный код в зависимости от ситуации.

Подведем итоги:

  • Если вы пишете скрипткоторый не предполагает запуск как модульто конструкция if __ name__ == «__main__» не нужна.
  • НО! Достаточно часто скрипт может выполняться как самостоятельно, так и может быть импортирован как модуль другим скриптом. Так при импорте будет запущен этот скрипт, то следует указать какая часть его кода не должна выполняться при импорте. Сделать это можно с помощью if __ name__ == «__main__»

Видео по теме:

Оцените статью
Репост в TG и VK
Алготрейдинг шаг за шагом. Создай торгового робота на Python с нуля по нашим урокам. Автоматизируй торговлю на бирже по собственной стратегии.