Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyPmFnIFN 22 of 129 menu
◀ ▶

Iekšējo funkciju darbības nianses Python

Python var būt ne tikai ligzdotas funkcijas, bet arī viena funkcija var atgriezt citu. Piemēram, ļaujiet funkcijai outer atgriezt kā rezultātu pirmkodu funkcijas inner:

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

Ierakstīsim izsaukumu outer mainīgajā res:

res = outer() print(res)

Pēc koda izpildes tiks izvadīts objekts ar funkciju:

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

Ja izsauc mainīgo res ar apaļām iekavām, tad tiks atgriezts ziņojums '+++':

print(res()) # izvadīs '+++'

Kodu var pārrakstīt tā, lai res tiktu ierakstīta outer ar divām apaļām iekavām - lai izsauktu sevi pašu un funkciju inner. No tā izriet, ka var ierakstīt papildu apaļās iekavas pa labi no ārējās funkcijas pēc to skaita, ligzdotās tajā funkcijās:

res = outer()() print(res) # izvadīs '+++'

Dots šāds kods:

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

Sakiet, kas tiks izvadīts konsolē.

Dots šāds kods:

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

Sakiet, kas tiks izvadīts konsolē.

← →
↑
Latviešu▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt