Нијансе при раду са унутрашњом функцијом у Пајтону
У Пајтону могу постојати не само уграђене
функције, већ једна функција може да враћа
другу. На пример, нека функција outer
враћа као резултат изворни код
функције inner:
pythondef outer():
def inner():
return '+++'
return inner
Запишимо израз outer у
променљиву res:
pythonres = outer()
print(res)
Након извршавања кода исписаће се објекат функције:
python<function outer.<locals>.inner at 0x000001564A212B90>
Ако се променљива res позове са
заградама, вратиће се порука
'+++':
pythonprint(res()) # исписаће '+++'
Код се може преписати тако да се у res
упише outer са две заграде - за позивање саме себе и функције
inner. Из тога следи да се могу
писати додатне заграде
десно од спољашње функције према броју
функција уграђених у њу:
pythonres = outer()()
print(res) # исписаће '+++'
Задание 1
Дат је следећи код:
pythondef outer():
def inner(num):
return num + 2
return inner
res = outer()(3)
print(res)
Реците шта ће бити исписано у конзолу.
Задание 2
Дат је следећи код:
pythondef outer():
def inner(txt):
return 'hello, ' + txt
return inner
res = outer()
print(res)
Реците шта ће бити исписано у конзолу.