Нијанси на работа со опсези на видливост во Python
Да ги разгледаме важните нијанси на работа со локални и глобални променливи.
Нека имаме глобална променлива num.
Ајде да создадеме функција func,
која ќе ја прикажува глобалната num
во конзола:
num = 1
def func():
print(num)
func() # ќе испише 1
А сега да декларираме локална num на
линија под функцијата print. После
извршувањето на кодот во конзолата ќе се испише грешка.
Ова се случува затоа што Python
внатре во функцијата ја перцепира num
само како локална променлива, која
сè уште не е декларирана:
num = 1
def func():
print(num) # ќе испише грешка
num = 2
Ајде сега да го преработиме кодот внатре во функцијата
така што вредноста на променливата num
ќе се зголеми за 2:
num = 1
def func():
num += 2 # ќе испише грешка
Грешката е предизвикана од тоа што изразот num += 2
претставува следнава запишување:
num = num + 2
Сепак, самата локална променлива, на која се додава сè уште не е декларирана. И соодветно, Python испишува грешка, бидејќи не може да се додаде број на непостоечка вредност.
Каков ќе биде резултатот од извршувањето на следниот код:
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)