Pythoni skoobi töötamise nüansid
Vaatleme olulisi nüansse lokaalsete ja globaalsete muutujatega töötamisel.
Oletame, et meil on globaalne muutuja num.
Loome funktsiooni func,
mis väljastab globaalse num
konsooli:
num = 1
def func():
print(num)
func() # väljastab 1
Nüüd deklareerime lokaalse num
real allpool print funktsiooni. Pärast
koodi käivitamist kuvatakse konsooli viga.
See juhtub seetõttu, et Python
funktsiooni sees tajub num-it
ainult lokaalse muutujana, mida
ei ole veel deklareeritud:
num = 1
def func():
print(num) # väljastab vea
num = 2
Kirjutame nüüd funktsiooni sees oleva koodi ümber
nii, et muutuja num väärtus
suureneb 2 võrra:
num = 1
def func():
num += 2 # väljastab vea
Viga on põhjustatud sellest, et avaldis num += 2
esindab järgmist kirjet:
num = num + 2
Kuid lokaalset muutujat, millele liidetakse, pole veel deklareeritud. Ja vastavalt sellele kuvab Python vea, kuna ei saa lisada arvu olematule väärtusele.
Milline on järgmise koodi täitmise tulemus:
tst = '12'
def func():
tst = 12
return tst
print(tst)
Milline on järgmise koodi täitmise tulemus:
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
Milline on järgmise koodi täitmise tulemus:
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)