Ребят, до сих пор не пойму зачем эта проверка if name = “__main__” делается. Что он даст, что запущено из основной программы, а не модуля?
При загрузке модулей посредством import... / from... весь код модуля исполняется, если там не только функции, но ещё и вызовы этих функций, то при импорте эти вызовы будут также выполнены.
Конструкция if name == "main" проверяет откуда исполняется код, если из текущего файла, то имя будет main, соответственно всё под нашим if-ом будет исполняться(принты, вызовы и т.д.)
А в случае, если код был импортирован как модуль(import... / from...), то при проверке name будет уже не main и, соответственно, всё что под if-ом выполнятся не будет.
Например: написал ты функцию factorial, напихал под if name == 'main': принтов чтобы проверить работу, запустил - проверил - работает. Теперь можешь в другом файле сделать import своего factorial, зная, что в другом файле всё под этим if-ом исполняться не будет.
upd.: телега сжирает нижние подчёркивания, если что :)