पायथन में आंतरिक फ़ंक्शन के साथ काम करते समय बारीकियाँ

पायथन में न केवल नेस्टेड फ़ंक्शन हो सकते हैं, बल्कि एक फ़ंक्शन दूसरा फ़ंक्शन वापस भी कर सकता है। उदाहरण के लिए, मान लीजिए कि फ़ंक्शन 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)

बताएं कि कंसोल में क्या प्रिंट होगा।