⊗pyPmFnNl 21 of 129 menu

Amri nonlocal katika Python

Kuna matukio ambayo katika kitendaji cha nje kuna kibadilishaji ambacho kinahitaji kupatikana katika kitendaji cha ndani. Tutaweka katika kitendaji outer kibadilishaji i. Kuhusiana na kitendaji cha ndani, kibadilishaji hiki kitakuwa cha nje (kibadilishaji cha ulimwengu wote ni vile vilivyowekwa TU katika msimbo wa nje). Na kwa kitendaji inner tutaweza kuongeza i moja:

def outer(): i = 0 def inner(): i += 1 # itaonyesha [4, 9, 25] inner() return i

Hata hivyo, kwa inner kibadilishaji i ni cha eneo, Python inaichukulia kama isiyowekwa na inatoa makosa yanayofanana. Hapo awali, hitilafu kama hii ilirekebishwa kwa kutumia amri global. Hata hivyo hapa i ni kibadilishaji cha nje, kwa hivyo inapaswa kutumia amri nonlocal. Inachukua majina ya vibadilishaji yaliyoorodheshwa kwenye eneo la karibu zaidi la kuonekana, ukiondoa la ulimwengu wote, yaani i ndani ya inner itachukuliwa kutoka kwa kibadilishaji kilichowekwa hapo juu ya kitendaji hiki:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # itaonyesha 1

Katika msimbo ufuatao programu fulani alifanya makosa:

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

Nini kibaya na msimbo huu? Tafuta na urekebishe kosa la muandishi wa msimbo.

Katika msimbo ufuatao programu fulani alifanya makosa:

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

Nini kibaya na msimbo huu? Tafuta na urekebishe kosa la muandishi wa msimbo.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa