Документация Python неофициальный перевод

29.4. __main__ – Окружение скрипта верхнего уровня__main__ – Top-level script environment

Именем '__main__' обозначается область видимости, в которой выполняется код верхнего уровня. Значение '__main__' присваивается атрибуту __name__ модуля, когда он считывается со стандартного ввода, из скрипта или интерактивной строки.

Модуль может определить, выполняется ли он в основной области видимости, проверив свой атрибут __name__. Это позволяет реализовать распространённую идиому условного выполнения кода в модуле, когда он запускается как скрипт или с помощью python -m, но не при его импорте:

if __name__ == "__main__":
    # выполнять только при запуске как скрипт
    main()

Для пакета того же эффекта можно добиться, включив модуль __main__.py, содержимое которого будет выполнено, когда пакет запускается с помощью -m.