⊗pyPmFnNl 21 of 129 menu

Python даги nonlocal инструкцияси

Ташқи функцияда ички функция томонидан кириш учун зарур бўлган ўзгарувчи бўлган ҳоллар мавжуд. Функцияда 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 ни кўрсатади

Куйидаги кодда бир программист хатолik қилган:

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

Бу кодда нима хато? Код муаллифининг хатосини топинг ва тўғриланг.

Куйидаги кодда бир программист хатолik қилган:

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çeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш