Нијансе рада са областима видљивости у Пајтону
Размотримо важне нијансе рада са локалним и глобалним променљивим.
Нека имамо глобалну променљиву num.
Хајде да креирамо функцију func,
која ће исписати глобалну num
у конзолу:
num = 1
def func():
print(num)
func() # исписаће 1
А сада декларишимо локалну num на
реду испод функције print. Након
извршавања кода у конзолу ће се исписати грешка.
То се дешава због тога што Пајтон
унутар функције перципира num
само као локалну променљиву, која
још није била декларисана:
num = 1
def func():
print(num) # исписаће грешку
num = 2
Хајде сада да препишемо код унутар функције
тако да се вредност променљиве num
повећа за 2:
num = 1
def func():
num += 2 # исписаће грешку
Грешка је изазвана тим што израз num += 2
представља следећи запис:
num = num + 2
Међутим сама локална променљива, којој се додаје још није декларисана. И самим тим Пајтон исписује грешку, пошто није могуће додати број непостојећој вредности.
Какав ће бити резултат извршавања следећег кода:
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)