क्लोज़र आपकी वैल्यूज़ को सुरक्षित रखते हैं
आप अभी भी अपनी भांजी/भतीजी को क्लोज़र समझने में मदद कर रहे हैं। आपने get_new_func() नाम का फंक्शन लिखा है जो एक नेस्टेड फंक्शन लौटाता है। नेस्टेड फंक्शन call_func() उस किसी भी फंक्शन को कॉल करता है जिसे get_new_func() को पास किया गया था। आपने my_special_function() भी लिखा है जो बस एक संदेश प्रिंट करता है कि आप my_special_function() चला रहे हैं।
आप उसे दिखाना चाहते हैं कि get_new_func() को पास करने के बाद आप my_special_function() के साथ चाहे जो भी करें, नई फंक्शन के क्लोज़र में होने के कारण नया फंक्शन अब भी मूल my_special_function() जैसा ही व्यवहार करता है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Functions लिखना
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
def my_special_function():
print('You are running my_special_function()')
def get_new_func(func):
def call_func():
func()
return call_func
new_func = get_new_func(my_special_function)
# Redefine my_special_function() to just print "hello"
def my_special_function():
____
new_func()