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)
Консольге не шығарылатынын айтыңыз.