पायथन में फंक्शन के अंदर फंक्शन
पायथन में, एक फंक्शन के अंदर दूसरे फंक्शन घोषित किए जा सकते हैं। मान लीजिए कि हमारे पास एक बाहरी फंक्शन outer है, जिसके अंदर inner नाम का फंक्शन है:
def outer():
def inner():
pass
ऊपर दिया गया उदाहरण काफी सरल लगता है। हालाँकि, अक्सर ऐसी स्थितियाँ होती हैं जहाँ outer फंक्शन के बॉडी में inner के अलावा अन्य ऑपरेशन भी performed होते हैं। कोड को सरल बनाने के लिए, inner को बाहरी कोड ब्लॉक में ले जाया जा सकता था, लेकिन यह फंक्शन केवल एक बार और केवल outer फंक्शन के अंदर ही उपयोग किया जाएगा। इसलिए इसे बाहर निकालने का कोई मतलब नहीं है।
आइए एक उदाहरण देखें, जहाँ outer फंक्शन को एक सूची पास की जाती है। और inner फंक्शन की मदद से सूची के numerical एलिमेंट को वर्ग (स्क्वायर) में बदला जाएगा। इसके लिए inner फंक्शन के बाद, हम एक खाली सूची res घोषित करते हैं, जिसमें लूप में वर्ग किए गए एलिमेंट जमा किए जाएंगे:
def outer(lst):
def inner(num):
return num ** 2
res = []
for el in lst:
res.append(inner(el))
return res
आइए outer फंक्शन को कॉल करें, उसे एक सूची पैरामीटर पास करें और परिणाम को कंसोल पर प्रिंट करें:
print(outer([2, 3, 5])) # आउटपुट [4, 9, 25]
एक बाहरी और आंतरिक फंक्शन लिखें, जिनका संयुक्त कार्य सूची के प्रत्येक स्ट्रिंग एलिमेंट को capital letter के साथ प्रिंट करेगा।
निम्नलिखित फंक्शन दिए गए हैं:
def func1(num):
if num > 0:
num += 2
return num
def func2(iter):
res = []
for el in iter:
res.append(func1(el))
return res
कोड को इस प्रकार फिर से लिखें कि func1, func2 के लिए एक आंतरिक फंक्शन बन जाए।