Нијансе при раду са унутрашњом функцијом у Пајтону
У Пајтону могу постојати не само уграђене
функције, већ једна функција може да враћа
другу. На пример, нека функција 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)
Реците шта ће бити исписано у конзолу.