Python да функцияларда кўриш соҳаси билан ишлашнинг нюанслари

Локал ва глобал ўзгарувчилар билан ишлашнинг мухим нюансларини кўриб чиқамиз.

Бизда num глобал ўзгарувчиси бор деб фараз қилайлик. Келгила, консолга глобал num ни чиқарувчи func функциясини яратайлик:

pythonnum = 1

def func():
  print(num)

func() # 1 ни чиқаради

Энди print функциясидан пастки сатрда локал num ни эълон қилайлик. Код бажарилганидан сўнг консолда хатолик чиқади. Бу шундан келиб чиқадики, Python функция ичида num ни ҳали эълон қилинмаган фақат локал ўзгарувчи сифатида қабул қилади:

pythonnum = 1

def func():
  print(num) # хатоликни чиқаради
  num = 2

Келгила, энди функция ичидаги кодни num ўзгарувчисининг қиймати 2 га оширилиши учун қайта ёзайлик:

pythonnum = 1

def func():
  num += 2 # хатоликни чиқаради

Хатолик num += 2 ифодаси куйидаги ёзишни ифодалаши сабаб бўлди:

pythonnum = num + 2

Бирок, қўшилаётган локал ўзгарувчининг ўзи ҳали эълон қилинмаган. Ва шунинг учун Python хатолик чиқаради, чунки мавжуд бўлмаган қийматга рақам қўшиб бўлмайди.

Задание 1

Куйидаги кодни бажариш натижаси қандай бўлади:

pythontst = '12'

def func():
  tst = 12
  return tst
  
print(tst)
Задание 2

Куйидаги кодни бажариш натижаси қандай бўлади:

pythontst = 'abc'

def func():
  tst = tst.upper()
  return tst

func()
print(tst)
Задание 3

Куйидаги кодни бажариш натижаси қандай бўлади:

pythontst = 'abc'

def func():
txt = tst.upper()
return txt
    
print(func())
print(tst)