⊗pyPmFnCl 23 of 129 menu

Պիտոնում փակումները

Փակում-ի (closure) տակ հասկանում են ֆունկցիան՝ միասին դրան հասանելի բոլոր արտաքին փոփոխականների հետ:

Պիտոնում, ամենից հաճախ, «ֆունկցիայի փակում» ասելով, նկատի ունեն ոչ թե հենց այդ ֆունկցիան, այլ հենց դրա արտաքին փոփոխականները:

Ենթադրենք ունենք հետևյալ outer ֆունկցիան, որում հայտարարված է i փոփոխականը և ներքին ֆունկցիա inner: Դրանում i-ին կգումարվի մեկ: Որպեսզի i փոփոխականը կոռեկտ աշխատի, դրան ավելացնում ենք nonlocal հրահանգը:

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

Հիմա դնենք արտաքին ֆունկցիան res փոփոխականի մեջ և կանչենք այն կլոր փակագծերով:

res = outer() res() # կարտածի 1

Եկեք մի քանի անգամ կանչենք res-ը: Կոդի կատարումից հետո ամեն անգամ i հաշվիչը կմեծանա մեկով:

res() # կարտածի 2 res() # կարտածի 3 res() # կարտածի 4

Սակայն այստեղ կա կարևոր նրբերանգ՝ outer ֆունկցիայի ամեն կանչ կմեծացնի իր սեփական հաշվիչը: Եկեք առաջին outer կանչը գրենք res1 փոփոխականի մեջ, իսկ երկրորդ կանչը՝ res2 փոփոխականի մեջ: Հետո հաջորդաբար արտածենք դրանք կոնսոլ:

res1 = outer() res1() # կարտածի 1 res1() # կարտածի 2 res1() # կարտածի 3 res2 = outer() res2() # կարտածի 1 res2() # կարտածի 2 res2() # կարտածի 3

Տրված է հետևյալ կոդը:

def outer(): i = 10 def inner(): nonlocal i i -= 2 print(i) return inner res1 = outer() res1() res1() res2 = outer() res2() res2() res2()

Ասեք, թե ինչ կարտածվի կոնսոլ:

Ստեղծեք ֆունկցիա, որի ամեն կանչ կկանչի Ֆիբոնաչչիի հաջորդ թիվը:

Ստեղծեք ֆունկցիա, որն կտա պատահական ամբողջ թիվ միջակայքում, բայց այնպես, որ երկու անգամ անընդմեջ նույնը չլինի:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել