⊗pyPmFnFIF 20 of 129 menu

Функсия дар функсия дар Python

Дар Python дохили як функсияҳо метавон дигаронро эълон кард. Бигзор мо функсияи беруна дорем outer, ки дохили он функсияи inner ҷойгир аст:

def outer(): def inner(): pass

Мисоли дар боло овардашуда хеле содда менамояд. Аммо аксар вақт ҳолатҳое рух медиҳанд, ки дар бадани функсия outer ғайр аз inner амалиётҳои дигар низ иҷро мешаванд. Барои содда кардани код шояд метавонист inner-ро ба блоки берунаи код барорид, аммо ин функсия танҳо як маротиба истифода бурда мешавад ва танҳо дар дохили функсияи outer. Аз ин рӯ, бароридани он аз ҳудудҳои он маъно надорад.

Биёед мисолеро дида бароем, ки ба функсияи outer рӯйхат дода мешавад. Ва бо ёрии функсияи inner унсури ададии рӯйхат ба дараҷаи квадратӣ мерасад. Барои ин пас аз функсияи inner рӯйхати холӣ res-ро эълон мекунем, ки дар он унсурҳо, ба дараҷаи квадратӣ баровардашуда, дар сикл ҷамъ хоҳанд шуд:

def outer(lst): def inner(num): return num ** 2 res = [] for el in lst: res.append(inner(el)) return res

Биёед функсияи outer-ро фарохонем, ба он параметри рӯйхатро гузаронем ва натиҷаро ба консол чоп кунем:

print(outer([2, 3, 5])) # [4, 9, 25]-ро бармеоранд

Функсияи беруна ва дохилиеро нависед, ки коргузории муштараки онҳо ҳар унсури сатрӣи рӯйхатро бо ҳарфи калон бароранд.

Функсияҳо дода шудаанд:

def func1(num): if num > 0: num += 2 return num def func2(iter): res = [] for el in iter: res.append(func1(el)) return res

Кодро аз нависед, то func1 функсияи дохилӣ барои func2 шавад.

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