Nuancat e punës me fushëveprimet në Python
Le të shqyrtojmë nuancat e rëndësishme të punës me ndryshore lokale dhe globale.
Le të kemi një ndryshore globale num.
Le të krijojmë një funksion func,
që do të shfaqë num globale
në konsol:
num = 1
def func():
print(num)
func() # do të shfaqë 1
Tani le të deklarojmë num lokale
në rreshtin pas funksionit print. Pas
ekzekutimit të kodit në konsol do të shfaqet një gabim.
Kjo ndodh sepse Python
brenda funksionit e percepton num
vetëm si një ndryshore lokale, e cila
ende nuk është deklaruar:
num = 1
def func():
print(num) # do të shfaqë gabim
num = 2
Tani le të rishkruajmë kodin brenda funksionit
në mënyrë që vlera e ndryshores num
të rritet me 2:
num = 1
def func():
num += 2 # do të shfaqë gabim
Gabimi shkaktohet nga fakti se shprehja num += 2
paraqet shënimin e mëposhtëm:
num = num + 2
Sidoqoftë, vetë ndryshorja lokale, së cilës i shtohet, ende nuk është deklaruar. Dhe në përputhje me rrethanat Python shfaq një gabim, meqenëse nuk mund t'i shtohet një numër një vlere që nuk ekziston.
Cili do të jetë rezultati i ekzekutimit të kodit në vijim:
tst = '12'
def func():
tst = 12
return tst
print(tst)
Cili do të jetë rezultati i ekzekutimit të kodit në vijim:
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
Cili do të jetë rezultati i ekzekutimit të kodit në vijim:
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)