Global-käsky Pythonissa
Oletetaan, että meillä on ulkoinen globaali
muuttuja i. Lisäksi on funktio
func, joka lisää tähän
muuttujaan yhden:
i = 0
def func():
i += 1 # antaa virheen
return i
Koodin suorittamisen jälkeen palautuu virhe,
koska tapahtuu konflikti globaalin
i:n, joka on julistettu ulkoisessa koodissa, ja
paikallisen i:n välillä, johon lisätään
1, mutta muuttujaa ei ole vielä
julistettu. Korjatakseen tämän
ongelman ja asettaakseen funktion toimimaan nimenomaan
globaalin muuttujan kanssa, tulee käyttää
käskyä global. Tämä käsky
edustaa julistusta, joka
suoritetaan koko nykyiselle koodilohkolle,
jossa se on määritetty.
Kirjoitetaan edellinen esimerkki uudelleen, julistamalla
funktion sisällä global:
def func():
global i
i += 1
return i
print(func()) # tulostaa 1
Seuraavassa koodissa eräs ohjelmoija teki virheen:
num = 4
def func():
num *= 2
return num
print(func())
Mikä tässä koodissa on vialla? Etsi ja korjaa koodin tekijän virhe.
Seuraavassa koodissa eräs ohjelmoija teki virheen:
num = 10
def func():
num -= 3
return i
print(func())
Mikä tässä koodissa on vialla? Etsi ja korjaa koodin tekijän virhe.