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