Я новичок в Python, так что это, вероятно, простой вопрос. Следующий код в файле (модуле) Python меня немного смущает:
if __name__ == '__main__':
x = 1
print x
В других языках, на которых я работал, этот код выдает исключение, поскольку x
переменная является локальной для if
оператора и не должна существовать вне ее. Но этот код выполняется и печатает 1. Кто-нибудь может объяснить это поведение? Все переменные, созданные в модуле, глобальны / доступны для всего модуля?
if
выше утверждение не имеет места (то есть,__name__
это не'__main__'
, например , при импорте модуля вместо выполнения его верхнего уровня), тоx
никогда не были связаны, и последующееprint x
заявление броситNameError: name 'x' is not defined
.