रिटर्न टाइप प्रिंट करें
आप एक पैकेज डिबग कर रहे हैं जिस पर आप अपने दोस्तों के साथ काम कर रहे थे. आपके किसी फंक्शन से लौट रहे डेटा के साथ कुछ अजीब हो रहा है, लेकिन आपको यह भी नहीं पता कि दिक्कत किस फंक्शन से आ रही है. आपको पता है कि कभी-कभी बग तब घुस आते हैं जब आप उम्मीद करते हैं कि कोई फंक्शन एक तरह का मान लौटाएगा, और वह कुछ अलग लौटा देता है. उदाहरण के लिए, अगर आप उम्मीद करते हैं कि कोई फंक्शन एक numpy array लौटाएगा, लेकिन वह list लौटा दे, तो अनअपेक्षित व्यवहार हो सकता है. यह पक्का करने के लिए कि समस्या यही नहीं है, आप एक डेकोरेटर print_return_type() लिखने का फैसला करते हैं, जो किसी भी फंक्शन की हर कॉल से लौटने वाले वैरिएबल के टाइप को प्रिंट करेगा जिसे वह डेकोरेट कर रहा है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Functions लिखना
अभ्यास निर्देश
- एक nested फंक्शन
wrapper()बनाएँ, जो नया डेकोरेट किया गया फंक्शन बनेगा. - डेकोरेट किए जा रहे फंक्शन को कॉल करें.
- नए डेकोरेट किए गए फंक्शन को रिटर्न करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
def print_return_type(func):
# Define wrapper(), the decorated function
____ ____(____, ____):
# Call the function being decorated
result = ____(____, ____)
print('{}() returned type {}'.format(
func.__name__, type(result)
))
return result
# Return the decorated function
return ____
@print_return_type
def foo(value):
return value
print(foo(42))
print(foo([1, 2, 3]))
print(foo({'a': 42}))