⊗pyPmFnIFN 22 of 129 menu

Niuanse przy pracy z funkcją wewnętrzną w Pythonie

W Pythonie mogą istnieć nie tylko funkcje zagnieżdżone, ale także jedna funkcja może zwracać inną. Na przykład, niech funkcja outer zwraca jako wynik kod źródłowy funkcji inner:

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

Zapiszmy wywołanie outer w zmiennej res:

res = outer() print(res)

Po wykonaniu kodu wyświetli się obiekt z funkcją:

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

Jeśli jednak wywołać zmienną res z nawiasami okrągłymi, to zwrócona zostanie wiadomość '+++':

print(res()) # wyświetli '+++'

Można przepisać kod tak, aby do res zapisana została outer z dwoma nawiasami okrągłymi - dla wywołania samej siebie i funkcji inner. Z czego wynika, że można zapisywać dodatkowe nawiasy okrągłe z prawej strony funkcji zewnętrznej według liczby funkcji w niej zagnieżdżonych:

res = outer()() print(res) # wyświetli '+++'

Dany jest następujący kod:

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

Powiedz, co wyświetli się w konsoli.

Dany jest następujący kod:

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

Powiedz, co wyświetli się w konsoli.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć