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