Nijanse rada sa opsezima vidljivosti u Python-u

Razmotrimo važne nijanse rada sa lokalnim i globalnim promenljivima.

Neka imamo globalnu promenljivu num. Hajde da kreiramo funkciju func, koja će ispisivati globalnu num u konzolu:

pythonnum = 1

def func():
  print(num)

func() # ispisaće 1

A sada deklarišimo lokalnu num na liniji ispod funkcije print. Nakon izvršenja koda u konzolu će se ispisati greška. Ovo se dešava zbog toga što Python unutar funkcije percipira num samo kao lokalnu promenljivu, koja još nije bila deklarisana:

pythonnum = 1

def func():
  print(num) # ispisaće grešku
  num = 2

Hajde sada da prepišemo kod unutar funkcije tako da se vrednost promenljive num uveća za 2:

pythonnum = 1

def func():
  num += 2 # ispisaće grešku

Greška je izazvana time što izraz num += 2 predstavlja sledeći zapis:

pythonnum = num + 2

Međutim, sama lokalna promenljiva, kojoj se vrši dodavanje još uvek nije deklarisana. I shodno tome Python ispisuje grešku, pošto se ne može dodati broj ne postojećoj vrednosti.

Задание 1

Kakav će biti rezultat izvršenja sledećeg koda:

pythontst = '12'

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

Kakav će biti rezultat izvršenja sledećeg koda:

pythontst = 'abc'

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

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

Kakav će biti rezultat izvršenja sledećeg koda:

pythontst = 'abc'

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