Global, Local, and Nonlocal Variables
Глобальна змінна — це змінна, оголошена поза функцією або в глобальній області видимості. Це означає, що до глобальної змінної можна отримати доступ як всередині, так і ззовні функції.
Ви можете отримати доступ до глобальних змінних всередині функцій (ТІЛЬКИ ДЛЯ ЧИТАННЯ), але якщо хочете їх змінити — оголосіть 'global':
x = 5
y = 10
def change_x():
global x
x += 10
return x
def change_x_y():
global x, y
x += 20
y += 20
return x, y
print(x, y) # 5 10
print(change_x()) # 15
print(x, y) # 15 10
print(*change_x_y()) # 35 30
print(x, y) # 35 30
print(*change_x_y()) ми використали розпакування (*). Це дозволило вивести змінні не у вигляді кортежу — 35 30 замість (35, 30).
Нелокальні змінні стосуються всіх тих змінних, які оголошені у вкладених функціях. Змінні можуть бути ні в локальній, ні в глобальній області видимості. Використовуйте ключове слово nonlocal для створення нелокальної змінної. Порівняємо функції без та з використанням цього ключового слова: