⊗pyPmFnSN 4 of 129 menu

Нюанси на работа с обхвати на видимост в 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)
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне