⊗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 උපදෙස භාවිතා කළ යුතුය. එය ගෝලීය හැර, ආසන්නතම ප්‍රකාශන පරිමාණයට විචල්‍ය නාම ලැයිස්තුගත කරයි, එනම් inner තුළ i මෙම ශ්‍රිතයට ඉහළින් ප්‍රකාශ කර ඇති විචල්‍යයෙන් ගනු ලැබේ:

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
අපි වෙබ් අඩවිය ක්‍රියාත්මක කිරීම, විශ්ලේෂණය සහ පුද්ගලීකරණය සඳහා කුකී භාවිතා කරමු. දත්ත සැකසීම සිදුකරනු ලබන්නේ ගෝපනීයතා ප්‍රතිපත්තිය අනුව ය.
සියල්ල පිළිගන්න කොන්දේසි ප්‍රතික්ෂේප කරන්න