दोस्तों, क्या आपने कभी सोचा है कि Python में कोड को और भी शक्तिशाली और सुंदर कैसे बनाया जा सकता है? क्या आप बिना किसी फंक्शन के मूल कोड को बदले उसकी कार्यक्षमता को बढ़ाना चाहते हैं? अगर हाँ, तो Python डेकोरेटर्स आपके लिए किसी जादू से कम नहीं हैं!
चलिए, आज हम इस ब्लॉग पोस्ट में Python डेकोरेटर्स को बिलकुल सरल भाषा में समझेंगे। हम जानेंगे कि डेकोरेटर्स क्या हैं, वे कैसे काम करते हैं और उनका उपयोग करके हम अपने कोड को कैसे बेहतर बना सकते हैं।
Table of Contents
Python डेकोरेटर्स क्या हैं?
सरल शब्दों में, डेकोरेटर्स ऐसे फंक्शन्स होते हैं जो दूसरे फंक्शन्स को इनपुट के रूप में लेते हैं और उनकी कार्यक्षमता को बढ़ाकर एक नया फंक्शन लौटाते हैं।
इसे समझने के लिए, टोल बूथ का उदाहरण लेते हैं। जब आप किसी हाईवे पर चलते हैं, तो आपको टोल बूथ से गुजरना पड़ता है। टोल बूथ आपकी गाड़ी के प्रकार के आधार पर टोल वसूलता है, लेकिन आपकी यात्रा के उद्देश्य या आपके गंतव्य को नहीं बदलता है।
ठीक उसी तरह, डेकोरेटर्स आपके फंक्शन को "डेकोरेट" करते हैं, यानी उसकी कार्यक्षमता में कुछ अतिरिक्त कार्य जोड़ते हैं, लेकिन उसके मूल उद्देश्य को नहीं बदलते हैं।
डेकोरेटर्स का उपयोग क्यों करें?
डेकोरेटर्स का उपयोग करने के कई फायदे हैं:
- कोड को पुन: प्रयोज्य बनाते हैं: आप एक ही डेकोरेटर का उपयोग कई अलग-अलग फंक्शन्स के साथ कर सकते हैं।
- कोड को अधिक पठनीय बनाते हैं: डेकोरेटर्स का उपयोग करके, आप अपने कोड को छोटा और समझने में आसान बना सकते हैं।
- कोड को अधिक संगठित बनाते हैं: डेकोरेटर्स का उपयोग करके, आप समान कार्य करने वाले कोड को एक साथ समूहित कर सकते हैं।
Python में डेकोरेटर्स कैसे काम करते हैं?
डेकोरेटर्स फंक्शन्स हैं जो @
सिंबल का उपयोग करके फंक्शन डेफिनेशन से ठीक पहले लिखे जाते हैं।
चलिए, एक सरल उदाहरण देखते हैं:
इस उदाहरण में:
my_decorator
एक डेकोरेटर फंक्शन है जोfunc
नामक एक फंक्शन को इनपुट के रूप में लेता है।wrapper
फंक्शनmy_decorator
के अंदर परिभाषित किया गया है और यहfunc
को कॉल करने से पहले और बाद में कुछ काम करता है।@my_decorator
सिंटैक्स का उपयोगsay_hello
फंक्शन कोmy_decorator
से डेकोरेट करने के लिए किया जाता है।- जब
say_hello()
को कॉल किया जाता है, तोmy_decorator
फंक्शन को कॉल किया जाता है, जोwrapper
फंक्शन को लौटाता है। wrapper
फंक्शनsay_hello
को कॉल करता है और उसके पहले और बाद में कुछ काम करता है।
आउटपुट:
फंक्शन शुरू होने से पहले कुछ काम। नमस्ते, दुनिया! फंक्शन खत्म होने के बाद कुछ काम।
डेकोरेटर्स के कुछ और उदाहरण
चलिए, अब हम कुछ और व्यावहारिक उदाहरण देखते हैं जो डेकोरेटर्स की शक्ति को दर्शाते हैं:
समय मापने वाला डेकोरेटर
यह डेकोरेटर time.time()
फंक्शन का उपयोग करके किसी भी फंक्शन को पूरा होने में लगने वाले समय को मापता है।
लॉगिंग डेकोरेटर
यह डेकोरेटर किसी भी फंक्शन को कॉल करने और उससे रिटर्न होने वाली वैल्यू को लॉग करता है।
कैशिंग डेकोरेटर
यह डेकोरेटर पहले से गणना की गई वैल्यूज को कैश करता है ताकि उन्हें दोबारा गणना न करनी पड़े।
निष्कर्ष
Python डेकोरेटर्स कोड को पुन: प्रयोज्य, पठनीय और संगठित बनाने के लिए एक शक्तिशाली उपकरण हैं। इनका उपयोग करके, आप बिना किसी फंक्शन के मूल कोड को बदले उसकी कार्यक्षमता को बढ़ा सकते हैं।
मुझे आशा है कि इस ब्लॉग पोस्ट ने आपको Python डेकोरेटर्स को समझने में मदद की होगी। यदि आपके कोई प्रश्न हैं, तो कृपया बेझिझक पूछें!
Would you like to know more? watch a video on Python decorators