⊗pyPmFnFIF 20 of 129 menu

Funktsioon funktsioonis Pythonis

Pythonis saab ühe funktsiooni sees deklareerida teisi. Olgu meil väline funktsioon outer, mille sees asub funktsioon inner:

def outer(): def inner(): pass

Ülaltoodud näide näeb välja piisavalt lihtne. Siiski esineb sageli olukordi, kus funktsiooni outer kehas lisaks funktsioonile inner tehakse ka muid operatsioone. Koodi lihtsustamiseks võiks funktsiooni inner viia välimisse koodiplokki, kuid seda funktsiooni kasutatakse ainult üks kord ja ainult funktsiooni outer sees. Seega pole mõtet seda välja viia.

Vaatleme näidet, kui funktsioonile outer antakse ette loend. Ja funktsiooni inner abil tõstetakse loendi numbriline element ruutu. Selleks deklareerime funktsiooni inner järel tühja loendi res, kuhu hakkatakse koguma tsüklis ruutu tõstetud elemente:

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

Kutsume funktsioon outer, edastame sellele parameetrina loendi ja väljastame tulemi konsooli:

print(outer([2, 3, 5])) # väljastab [4, 9, 25]

Kirjutage väline ja sisemine funktsioon, mille ühine töö väljastab iga loendis oleva sõnelise elemendi suure algustähega.

Antud funktsioonid:

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

Kirjutage kood ümber nii, et func1 oleks func2 sisemine funktsioon.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu