Inštrukcia global v Pythone
Majme vonkajšiu globálnu
premennú i. Takisto existuje funkcia
func, ktorá k tejto
premennej pripočíta jednotku:
i = 0
def func():
i += 1 # vypíše chybu
return i
Po vykonaní kódu sa vráti chyba,
pretože dochádza ku konfliktu globálnej
i, deklarovanej vo vonkajšom kóde, a
lokálnej i, ku ktorej sa pripočítava
1, ale samotná premenná ešte nie je
deklarovaná. Na to, aby sme opravili tento
problém a nastavili funkcii prácu práve s
globálnou premennou, je potrebné použiť
inštrukciu global. Táto inštrukcia
predstavuje deklaráciu, ktorá
vykonáva pre celý aktuálny blok kódu,
v ktorom je nastavená.
Prepíšme predchádzajúci príklad, deklarovaním
v tele funkcie global:
def func():
global i
i += 1
return i
print(func()) # vypíše 1
V nasledujúcom kóde nejaký programátor urobil chybu:
num = 4
def func():
num *= 2
return num
print(func())
Čo je zlé s týmto kódom? Nájdite a opravte chybu autora kódu.
V nasledujúcom kóde nejaký programátor urobil chybu:
num = 10
def func():
num -= 3
return i
print(func())
Čo je zlé s týmto kódom? Nájdite a opravte chybu autora kódu.