Проверка, является ли __name__ == '__main__'
распространенной идиомой для запуска некоторого кода при непосредственном вызове файла, а не через модуль.
В процессе написания пользовательской команды для manage.py в Django я обнаружил, что мне нужно использовать code.InteractiveConsole
, который дает эффект пользователю стандартной оболочки Python. В некотором тестовом коде, который я выполнял, я обнаружил, что в скрипте, который я пытаюсь выполнить, я получаю, что __name__
равно __console__
, из-за чего мой код (зависит от __main__
) не запускается.
Я совершенно уверен, что у меня есть некоторые вещи в моей первоначальной реализации, которые можно изменить, но меня удивило, что могут быть разные вещи __name__
. Я не смог найти никакой документации о возможных значениях и их значении, поэтому я так и оказался здесь.