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