Короткий ответ Конструкция if __name__ == '__main__' проверяет, запущен ли файл напрямую как главная программа. При прямом запуске переменная __name__ равна строке '__main__', а при импорте — имени модуля, поэтому блок срабатывает только в первом случае. Как это работает подробнее Конструкция отделяет исполняемую часть модуля от объявлений, которые нужны импортирующему коду. Переменная __name__. Существует в каждом модуле и заполняется интерпретатором автоматически: '__main__' при запуске файла как главной программы и имя модуля при импорте. Разделение ролей. Под проверкой размещают исполняемый код вроде вызова main(), а вне её — функции и классы для импорта. Защита от побочных эффектов. Без проверки код верхнего уровня выполнялся бы и при импорте: печатал сообщения или запускал тяжёлые вычисления. Самопроверка модуля. В такой блок удобно класть собственные тесты, работающие только при прямом запуске файла. Пример кода Что использовать на практике Точка входа. Помещай запуск скрипта, вызов main(), под этот ус