Nyanser av arbeid med virkeområder i Python
La oss vurdere viktige nyanser ved arbeid med lokale og globale variabler.
Anta at vi har en global variabel num.
La oss opprette en funksjon func
som vil skrive den globale num
til konsollen:
num = 1
def func():
print(num)
func() # vil skrive ut 1
Og la oss deklarere en lokal num på
linjen under funksjonen print. Etter
utførelse av koden vil en feil skrives ut til konsollen.
Dette skjer fordi Python
innenfor funksjonen oppfatter num
kun som en lokal variabel som
ennå ikke er deklarert:
num = 1
def func():
print(num) # vil skrive ut feil
num = 2
La oss nå omskrive koden inne i funksjonen
så verdien av variabelen num
økes med 2:
num = 1
def func():
num += 2 # vil skrive ut feil
Feilen er forårsaket av at uttrykket num += 2
representerer følgende notasjon:
num = num + 2
Imidlertid er den lokale variabelen som det legges til ennå ikke deklarert. Og følgelig viser Python en feil, siden det ikke er mulig å legge til et tall til en ikke-eksisterende verdi.
Hva blir resultatet av utførelsen av følgende kode:
tst = '12'
def func():
tst = 12
return tst
print(tst)
Hva blir resultatet av utførelsen av følgende kode:
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
Hva blir resultatet av utførelsen av følgende kode:
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)