Global instruktsioon Pythonis
Oletame, et meil on väline globaalne
muutuja i. Samuti on funktsioon
func, mis lisab sellele
muutujale ühe:
i = 0
def func():
i += 1 # annab vea
return i
Pärast koodi käivitamist tekib viga,
kuna tekib konflikt globaalse
i vahel, mis on deklareeritud välimises koodis, ja
lokaalse i vahel, millele liidetakse
1, kuid muutuja ise pole veel
deklareeritud. Selle probleemi lahendamiseks
ja funktsiooni seadistamiseks töötama just
globaalse muutujaga, tuleb kasutada
instruktsiooni global. See instruktsioon
on deklaratsioon, mis
kehtib kogu praeguse koodiploki kohta,
milles see on määratletud.
Kirjutame üle eelmise näite, deklareerides
funktsiooni kehas global:
def func():
global i
i += 1
return i
print(func()) # väljastab 1
Järgmises koodis tegi mingi programmeerija vea:
num = 4
def func():
num *= 2
return num
print(func())
Mis selle koodiga valesti on? Leidke ja parandage koodi autori viga.
Järgmises koodis tegi mingi programmeerija vea:
num = 10
def func():
num -= 3
return i
print(func())
Mis selle koodiga valesti on? Leidke ja parandage koodi autori viga.