Podrobnosti delovanja obsegov vidnosti v Pythonu
Oglejmo si pomembne podrobnosti dela z lokalnimi in globalnimi spremenljivkami.
Recimo, da imamo globalno spremenljivko num.
Ustvarimo funkcijo func,
ki bo izpisala globalno num
v konzolo:
num = 1
def func():
print(num)
func() # izpiše 1
Zdaj pa deklarirajmo lokalno num v
vrstici pod funkcijo print. Po
izvedbi kode se bo v konzoli izpisala napaka.
Do tega pride, ker Python
znotraj funkcije dojema num
samo kot lokalno spremenljivko, ki
še ni bila deklarirana:
num = 1
def func():
print(num) # izpiše napako
num = 2
Zdaj pa prepišimo kodo znotraj funkcije
tako, da se vrednost spremenljivke num
poveča za 2:
num = 1
def func():
num += 2 # izpiše napako
Napaka je povzročena, ker izraz num += 2
predstavlja naslednji zapis:
num = num + 2
Vendar sama lokalna spremenljivka, kateri se prišteva, še ni deklarirana. in zato Python izpiše napako, saj ni mogoče prišteti števila k neobstoječi vrednosti.
Kakšen bo rezultat izvajanja naslednje kode:
tst = '12'
def func():
tst = 12
return tst
print(tst)
Kakšen bo rezultat izvajanja naslednje kode:
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
Kakšen bo rezultat izvajanja naslednje kode:
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)