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