Оператор global

Оновлено: 24.04.2023

global_stmt ::=  "global" identifier ("," identifier)*

Оператор global — це оголошення, яке зберігається для всього поточного блоку коду. Це означає, що перелічені ідентифікатори слід інтерпретувати як глобальні. Було б неможливо призначити глобальну змінну без global, хоча вільні змінні можуть посилатися на глобальні, не будучи оголошеними глобальними.

Імена, перелічені в операторі global, не можна використовувати в тому самому блоці коду, що текстово передує оператору global.

Імена, перелічені в операторі global, не можна визначати як формальні параметри або як цілі в операторах with або в пунктах except або в списку цілей for , визначення class, визначення функції, оператор import або анотація змінної.

Примітка програміста: global — це директива для аналізатора. Це стосується лише коду, аналізованого одночасно з оператором global. Зокрема, оператор global, що міститься в рядку або об’єкті коду, що надається вбудованій функції exec(), не впливає на блок коду, що містить виклик функції, і код, що міститься в таких на рядок не впливають оператори global у коді, що містить виклик функції. Те саме стосується функцій eval() і compile().