⊗pyPmFnNl 21 of 129 menu

Инструкцията nonlocal в Python

Има случаи, когато във външната функция има променлива, до която трябва да се получи достъп от вътрешната функция. Нека декларираме във функцията outer променлива i. Спрямо вътрешната функция тази променлива ще бъде външна (глобални са променливите, декларирани САМО във външния код). А на функцията inner ще зададем добавяне на единица към i:

def outer(): i = 0 def inner(): i += 1 # ще изведе [4, 9, 25] inner() return i

Обаче за inner променливата i е локална, Python я счита за недекларирана и извежда съответната грешка. Преди подобна грешка се коригираше с инструкцията global. Обаче тук i е външна променлива, затова трябва да се използва инструкцията nonlocal. Тя взема изброените имена на променливи в най-близката област на видимост, изключвайки глобалната, т.е. i вътре в inner ще бъде взета от променливата, декларирана по-горе от тази функция:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # ще изведе 1

В следния код някой програмист е допуснал грешка:

num = 10 def outer(): num = 5 def inner(): num -= 2 inner() return num print(outer())

Какво не е наред с този код? Намерете и коригирайте грешката на автора на кода.

В следния код някой програмист е допуснал грешка:

num = 3 def outer(): num += 1 tst = num def inner(): tst = tst ** 3 inner() return tst print(outer())

Какво не е наред с този код? Намерете и коригирайте грешката на автора на кода.

Български
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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне