В Python ключове слово global дозволяє змінювати змінну за межами поточної області видимості. Воно використовується для створення глобальної змінної та внесення до неї змін у локальному контексті.
Зміна глобальної змінної в Python
Спочатку спробуємо отримати доступ до глобальної змінної всередині функції:
|
1 2 3 4 5 6 |
c = 1 # глобальна змінна def add(): print(c) add() |
Результат:
1
Тут ми отримали доступ до глобальної змінної всередині функції. Однак, якщо ми спробуємо змінити глобальну змінну всередині функції наступним чином:
|
1 2 3 4 5 6 7 8 9 10 11 |
# Глобальна змінна c = 1 def add(): # Збільшуємо значення змінної c c = c + 2 print(c) add() |
Результат:
UnboundLocalError: local variable 'c' referenced before assignment
Це пов’язано з тим, що ми можемо отримати доступ тільки до глобальної змінної, але не можемо її змінити всередині функції. Рішенням є використовувати ключове слово global. Наприклад:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Глобальна змінна c = 1 def add(): # Використовуємо ключове слово global global c # Збільшуємо значення змінної c c = c + 2 print(c) add() |
Результат:
3
Тут ми використали ключове слово global зі змінною c всередині функції add(). Під час виклику функції add() значення глобальної змінної c змінилося з 1 на 3.
Використання ключового слова global у вкладених функціях
В Python ми також можемо використати ключове слово global у вкладених функціях. Наприклад:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
def outer_function(): num = 20 def inner_function(): global num num = 25 print("Before calling inner_function(): ", num) inner_function() print("After calling inner_function(): ", num) outer_function() print("Outside both function: ", num) |
Результат:
Before calling inner_function(): 20
After calling inner_function(): 20
Outside both function: 25
Тут ми оголосили змінну num як global всередині вкладеної функції inner_function(). На змінну num у зовнішній функції outer_function() ключове слово global ніяк не впливає. До та після виклику inner_function() змінна num є локальною змінною зі значенням 20, оскільки всі дії виконуються в локальній області видимості функції.
А вже після завершення виконання функції outer_function() ми переходимо в глобальну область видимості, де змінна num приймає значення, визначене в функції inner_function(), тобто num = 25. Це пов’язано з тим, що ми використали ключове слово global.
Правила використання ключового слова global
Коли ми створюємо змінну всередині функції, вона за замовчуванням стає локальною змінною.
Коли ми створюємо змінну поза функцією, вона за замовчуванням стає глобальною змінною. Вам не потрібно додатково використовувати для цього ключове слово global.
Ключове слово global використовується для створення глобальної змінної всередині функції.
Використання ключового слова global поза функцією не дасть жодного ефекту.

(18 оцінок, середня: 4,72 з 5)