Інструкцыя global у Python
Няхай у нас ёсць знешняя глабальная
зменная i. Таксама ёсць функцыя
func, якая дадае да гэтай
зменнай адзінку:
i = 0
def func():
i += 1 # выведзе памылку
return i
Пасля выканання кода вернецца памылка,
таму што адбываецца канфлікт глабальнай
i, аб'яўленай у знешнім кодзе, і
лакальнай i, да якой дадаецца
1, але сама зменная яшчэ не
аб'яўлена. Для таго, каб выправіць гэтую
праблему і задаць функцыі працу менавіта з
глабальнай зменнай, трэба выкарыстоўваць
інструкцыю global. Гэтая інструкцыя
ўяўляе сабой аб'яву, якая
выконваецца для ўсяго бягучага блока кода,
у якім яна зададзена.
Давайце перапішам папярэдні прыклад, аб'явіўшы
ў целе функцыі global:
def func():
global i
i += 1
return i
print(func()) # выведзе 1
У наступным кодзе нейкі праграміст дапусціў памылку:
num = 4
def func():
num *= 2
return num
print(func())
Што не так з гэтым кодам? Знайдзіце і выпраўце памылку аўтара кода.
У наступным кодзе нейкі праграміст дапусціў памылку:
num = 10
def func():
num -= 3
return i
print(func())
Што не так з гэтым кодам? Знайдзіце і выпраўце памылку аўтара кода.