Darbības jomu nianses Python
Apskatīsim svarīgās nianses, strādājot ar lokālajām un globālajām mainīgajiem.
Pieņemsim, ka mums ir globāls mainīgais num.
Izveidosim funkciju func,
kas izvadīs globālo num
konsole:
num = 1
def func():
print(num)
func() # izvadīs 1
Tagad deklarēsim lokālo num
rindā zem funkcijas print. Pēc
koda izpildes konsolē tiks izvadīta kļūda.
Tas notiek tāpēc, ka Python
funkcijas iekšpusē uztver num
tikai kā lokālo mainīgo, kas
vēl nav deklarēts:
num = 1
def func():
print(num) # izvadīs kļūdu
num = 2
Tagad pārrakstīsim kodu funkcijas iekšpusē
tā, lai mainīgā num vērtība
palielinātos par 2:
num = 1
def func():
num += 2 # izvadīs kļūdu
Kļūda izraisīta ar to, ka izteiksme num += 2
ir šāds apzīmējums:
num = num + 2
Tomēr pats lokālais mainīgais, kuram tiek pievienots vēl nav deklarēts. Un attiecīgi Python izvada kļūdu, jo nevar pievienot skaitli neesošai vērtībai.
Kāds būs šāda koda izpildes rezultāts:
tst = '12'
def func():
tst = 12
return tst
print(tst)
Kāds būs šāda koda izpildes rezultāts:
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
Kāds būs šāda koda izpildes rezultāts:
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)