⊗pyPmFnIFN 22 of 129 menu

Нюансҳо дар кор бо функсияи дохилӣ дар Python

Дар Python на танҳо функсияҳои фарогирифташуда метавонанд бошанд, балки як функсия метавонад дигареро баргардонад. Масалан, бигзор функсияи outer ҳамчун натиҷа коди манбаии функсияи inner баргардонад:

def outer(): def inner(): return '+++' return inner

Биёед фарозиши outer-ро ба тағйирёбандаи res сабт кунем:

res = outer() print(res)

Пас аз иҷрои код объект бо функсия чоп карда мешавад:

<function outer.<locals>.inner at 0x000001564A212B90>

Агар тағйирёбандаи res бо қавсҳои давра ( ) фарохонӣ шавад, пас паёми '+++' баргардонида мешавад:

print(res()) # '+++' -ро чоп мекунад

Мумкин аст кодро ба тавре аз нав навишт, ки ба res outer бо ду қавси давра сабт карда шавад - барои фарохонӣ кардани худаш ва функсияи inner. Аз ин бармеояд, ки метавон қавсҳои иловагии дароваро дар тарафи рости функсияи берунӣ ба миқдори функсияҳои фарогирифташуда дар он сабт кард:

res = outer()() print(res) # '+++' -ро чоп мекунад

Коди зерин дода шудааст:

def outer(): def inner(num): return num + 2 return inner res = outer()(3) print(res)

Бигӯед, ки дар консол чӣ чоп мешавад.

Коди зерин дода шудааст:

def outer(): def inner(txt): return 'hello, ' + txt return inner res = outer() print(res)

Бигӯед, ки дар консол чӣ чоп мешавад.

Тоҷикӣ
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
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан