Global instrukcija Python kalboje
Tarkime, kad turime išorinę globalų
kintamąjį i. Taip pat yra funkcija
func, kuri prie šio kintamojo prideda
vienetą:
i = 0
def func():
i += 1 # išmes klaidą
return i
Vykdant kodą bus grąžinta klaida,
nes atsiranda konfliktas tarp globalaus
i, deklaruoto išoriniame kode, ir
i, prie kurio pridedamas
1, bet pats kintamasis dar nebuvo
deklaruotas. Norint išspręsti šią
problemą ir nurodyti funkcijai dirbti būtent su
globaliu kintamuoju, reikia naudoti
instrukciją global. Ši instrukcija
reiškia deklaraciją, kuri
vykdoma visam esamam kodo blokui,
kuriame ji yra nurodyta.
Perrašykime ankstesnį pavyzdį, deklaravę
funkcijos kūne global:
def func():
global i
i += 1
return i
print(func()) # išves 1
Toliau pateiktame kode kažkoks programuotojas padarė klaidą:
num = 4
def func():
num *= 2
return num
print(func())
Kas negerai su šiuo kodu? Raskite ir ištaisykite kodo autoriaus klaidą.
Toliau pateiktame kode kažkoks programuotojas padarė klaidą:
num = 10
def func():
num -= 3
return i
print(func())
Kas negerai su šiuo kodu? Raskite ir ištaisykite kodo autoriaus klaidą.