Когда интерпретатор Python читает файл Python, он сначала устанавливает несколько специальных переменных. Затем он выполняет код из файла.

Файлы Python называются модулями. Модуль может определять функции, классы и переменные.

Поэтому, когда интерпретатор запускает модуль, переменная __name__ будет установлена ​​как __main__, если запускаемый модуль является основной программой.

Но если код импортирует модуль из другого модуля, то для переменной __name__ будет установлено имя этого модуля.

Например
Основной файл -> main.py

файл #main.py

print(main __name__ имеет значение: {} .format(__name__))

Когда вы запустите файл, вы увидите именно то, о чем мы только что говорили.

для основного __name__ установлено значение: __main__

Теперь возьмите другой файл source.py со следующим кодом:

# Модуль Python для импорта
# source.py

print(источник __name__ имеет значение: {} .format(__name__))

Измените код в main.py следующим образом, чтобы мы импортировали исходный модуль:

# Модуль Python для выполнения
#main.py
источник импорта

print(main __name__ имеет значение: {} .format(__name__))

Запуск нашего кода file_one еще раз покажет, что переменная __name__ в файле main не изменилась и по-прежнему имеет значение __main__. Но теперь переменная __name__ в источнике устанавливается как имя его модуля, следовательно, источник.

для источника __name__ задано значение: source

для основного __name__ установлено значение: __main__

Но запустите file_two напрямую, и вы увидите, что его имя установлено на __main__:

источник __name__ имеет значение: __main__

Вывод:

Обычный способ использования __name__ и __main__ выглядит так:

if __name__ == __main__:
#Ваш код будет здесь