⊗pyPmFnIFN 22 of 129 menu

Nuance při práci s vnitřní funkcí v Pythonu

V Pythonu mohou být nejen vnořené funkce, ale jedna funkce může vracet druhou. Například, nechť funkce outer vrací jako výsledek zdrojový kód funkce inner:

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

Zapišme volání outer do proměnné res:

res = outer() print(res)

Po provedení kódu se vypíše objekt s funkcí:

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

Pokud zavoláme proměnnou res s kulatými závorkami, vrátí se zpráva '+++':

print(res()) # vypíše '+++'

Lze přepsat kód tak, aby se do res zapsala outer s dvěma kulatými závorkami - pro volání sebe samé a funkce inner. Z čehož vyplývá, že lze zapsat další kulaté závorky vpravo od vnější funkce podle počtu funkcí vnořených do ní:

res = outer()() print(res) # vypíše '+++'

Je dán následující kód:

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

Řekněte, co se vypíše do konzole.

Je dán následující kód:

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

Řekněte, co se vypíše do konzole.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout