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