⊗pyPmFnIFN 22 of 129 menu

Тънкости при работа с вътрешни функции в Python

В Python може да има не само вложени функции, но и една функция може да връща друга. Например, нека функцията outer връща като резултат изходния код на функцията inner:

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

Нека запишем извикването на outer в променлива res:

res = outer() print(res)

След изпълнение на кода ще се изведе обект с функция:

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

Ако променливата res се извика със кръгли скоби, ще се върне съобщението '+++':

print(res()) # ще изведе '+++'

Може да се пренапише кода така, че в res да се записва outer с две кръгли скоби - за извикване на самата себе си и функцията inner. От което следва, че може да се записват допълнителни кръгли скоби отдясно на външната функция според броя на вложените в нея функции:

res = outer()() print(res) # ще изведе '+++'

Даден е следният код:

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

Кажете какво ще се изведе в конзолата.

Даден е следният код:

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

Кажете какво ще се изведе в конзолата.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне