⊗pyPmFnNl 21 of 129 menu

Die nonlocal-instruksie in Python

Daar is gevalle waar 'n veranderlike in die eksterne funksie is waartoe toegang nodig is in die interne funksie. Kom ons verklaar in funksie outer die veranderlike i. Ten opsigte van die interne funksie sal hierdie veranderlike eksterne wees (globaal is slegs veranderlikes wat verklaar is in die eksterne kode). En aan funksie inner gee ons die opdrag om een by i te tel:

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

Maar vir inner is veranderlike i lokaal, Python beskou dit as onverklaard en gee die ooreenstemmende fout. Vroeër is so 'n fout reggestel met behulp van die global instruksie. Maar hier is i 'n eksterne veranderlike, dus moet ons die instruksie nonlocal gebruik. Dit neem die genoemde veranderlike name in die naaste omvang van sigbaarheid, die globale uitsluitend, d.w.s. i binne inner sal van die veranderlike geneem word wat bo hierdie funksie verklaar is:

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

In die volgende kode het 'n sekere programmeerder 'n fout gemaak:

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

Wat is verkeerd met hierdie kode? Vind en regstel die outeur se fout.

In die volgende kode het 'n sekere programmeerder 'n fout gemaak:

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

Wat is verkeerd met hierdie kode? Vind en regstel die outeur se fout.

Afrikaans
Azə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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp