Конструкция if __name__ == "main"
Python ProgaВсем привет! Сегодня я расскажу вам, зачем нужна конструкция if __name__ == "__main__" в Python и когда её нужно использовать.
Для начала давайте разберёмся, что хранится в переменной __name__:

Как мы видим, в этой переменной хранится строка со значением __main__. Но что будет, если мы импортируем этот модуль из другого?
Сохраним наш код в файле TEST2.py:

И в файле TEST3.py импортируем модуль TEST2:

Но перед запуском кода, следует сказать, что во время импорта интерпретатор Python запускает импортированный файл, а это значит, что у нас снова напечатается переменная __name__ из модуля TEST2.
И вот что мы получаем при запуске файла TEST3.py:

Теперь в переменной __name__ хранится название модуля.
Теперь мы пришли к выводу, что в файле, который мы запускаем, переменная __name__ принимает значение __main__, но в файле, который мы импортируем, эта переменная принимает в качестве значения название модуля:

Теперь можно догадаться, что в блок if __name__ == "__main__" нужно помещать тот код, который не должен выполняться при импортировании, но должен выполняться во время запуска файла. Например во время запуска файла TEST3.py мы увидим это:

А без конструкции if __name__ == "__main__" мы бы увидели это:

А это нам не нужно.
Надеюсь, что вы поняли, в чем заключается смысл этой конструкции. Всего доброго!