⊗pyPmFnFIF 20 of 129 menu

Funktio funktion sisällä Pythonissa

Pythonissa yhden funktion sisällä voidaan määritellä toisia. Oletetaan, että meillä on ulompi funktio outer, jonka sisällä on funktio inner:

def outer(): def inner(): pass

Yllä oleva esimerkki näyttää melko yksinkertaiselta. Kuitenkin usein tilanteissa, joissa funktion outer rungossa inner:n lisäksi suoritetaan muita toimintoja. Koodin yksinkertaistamiseksi voitaisiin siirtää inner ulompaan koodilohkoon, mutta tätä funktiota käytetään vain kerran ja vain funktion outer sisällä. Siksi sen siirtämisellä ulkopuolelle ei ole järkeä.

Katsotaanpa esimerkkiä, jossa funktiolle outer välitetään lista. Ja funktion inner avulla listan numeerinen alkio korotetaan neliöön. Tätä varten funktion inner jälkeen määritellään tyhjä lista res, johon kerätään silmukassa neliöön korotetut alkiot:

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

Kutsutaan funktiota outer, välitetään sille parametrina lista ja tulostetaan tulos konsoliin:

print(outer([2, 3, 5])) # tulostaa [4, 9, 25]

Kirjoita ulompi ja sisempi funktio, joiden yhteistyö tulostaa jokaisen listan merkkijonoalkion isolla alkukirjaimella.

Annetut funktiot:

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

Kirjoita koodi uudelleen siten, että func1 olisi func2:n sisäinen funktio.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää