Python да функцияларда кўриш соҳаси билан ишлашнинг нюанслари
Локал ва глобал ўзгарувчилар билан ишлашнинг мухим нюансларини кўриб чиқамиз.
Бизда num глобал ўзгарувчиси бор деб фараз қилайлик.
Келгила, консолга глобал num ни чиқарувчи
func функциясини яратайлик:
num = 1
def func():
print(num)
func() # 1 ни чиқаради
Энди print функциясидан пастки сатрда локал
num ни эълон қилайлик. Код бажарилганидан сўнг
консолда хатолик чиқади. Бу шундан келиб чиқадики, Python
функция ичида num ни ҳали эълон қилинмаган
фақат локал ўзгарувчи сифатида қабул қилади:
num = 1
def func():
print(num) # хатоликни чиқаради
num = 2
Келгила, энди функция ичидаги кодни num
ўзгарувчисининг қиймати 2 га оширилиши учун қайта ёзайлик:
num = 1
def func():
num += 2 # хатоликни чиқаради
Хатолик num += 2 ифодаси куйидаги ёзишни
ифодалаши сабаб бўлди:
num = num + 2
Бирок, қўшилаётган локал ўзгарувчининг ўзи ҳали эълон қилинмаган. Ва шунинг учун Python хатолик чиқаради, чунки мавжуд бўлмаган қийматга рақам қўшиб бўлмайди.
Куйидаги кодни бажариш натижаси қандай бўлади:
tst = '12'
def func():
tst = 12
return tst
print(tst)
Куйидаги кодни бажариш натижаси қандай бўлади:
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
Куйидаги кодни бажариш натижаси қандай бўлади:
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)