पायथनमध्ये फंक्शन डेकोरेटर्स तयार करणे आणि चेन करणे

पायथनमध्ये फंक्शन डेकोरेटर्स तयार करणे आणि चेन करणे
पायथनमध्ये फंक्शन डेकोरेटर्स तयार करणे आणि चेन करणे

डेकोरेटर्ससह पायथन फंक्शन्स वाढवणे

Python मध्ये, decorators फंक्शन्स किंवा पद्धतींचे वर्तन सुधारण्यासाठी एक शक्तिशाली साधन आहे. ते विकसकांना विद्यमान कार्याभोवती स्वच्छ आणि वाचनीय पद्धतीने अतिरिक्त कार्यक्षमता गुंडाळण्याची परवानगी देतात. डेकोरेटर कसे तयार करायचे आणि साखळी कशी बनवायची हे समजून घेऊन, तुम्ही तुमच्या कोडची मॉड्यूलरिटी आणि वाचनीयता मोठ्या प्रमाणात वाढवू शकता.

हा लेख तुम्हाला दोन विशिष्ट डेकोरेटर बनवण्याच्या प्रक्रियेत मार्गदर्शन करेल: एक मजकूर ठळक करण्यासाठी आणि दुसरा मजकूर इटालिक करण्यासाठी. इच्छित आउटपुट प्राप्त करण्यासाठी या डेकोरेटर्सना साखळी कशी लावायची हे देखील आम्ही दाखवू. या ट्युटोरियलच्या शेवटी, तुम्ही एका साध्या फंक्शनला कॉल करू शकाल आणि ठळक आणि तिर्यक HTML टॅगसह स्वरूपित स्ट्रिंग प्राप्त करू शकाल.

आज्ञा वर्णन
def पायथनमधील फंक्शन परिभाषित करते.
f"<b>{func()}</b>" फंक्शनचे रिटर्न व्हॅल्यू ठळक HTML टॅगमध्ये गुंडाळण्यासाठी f-स्ट्रिंग फॉरमॅटिंग वापरते.
return wrapper प्रभावीपणे डेकोरेटर तयार करून आतील रॅपर फंक्शन परत करते.
@make_bold मेक_बोल्ड डेकोरेटर फंक्शनला लागू करते.
@add_html_tag("i") फंक्शनला "i" टॅगसह add_html_tag डेकोरेटर लागू करते.
print(say()) डेकोरेट केलेले आउटपुट प्रदर्शित करून, से फंक्शनचा परिणाम मुद्रित करते.
def add_html_tag(tag) सानुकूल करण्यायोग्य HTML टॅग डेकोरेटर तयार करण्यासाठी उच्च-ऑर्डर कार्य परिभाषित करते.
@add_html_tag("b") फंक्शनला "b" टॅगसह add_html_tag डेकोरेटर लागू करते.

पायथन फंक्शन डेकोरेटर्स समजून घेणे

फंक्शन्सचे वर्तन सुधारण्यासाठी पायथनमध्ये फंक्शन डेकोरेटर कसे तयार करावे आणि चेन कसे करावे हे प्रदान केलेल्या स्क्रिप्ट्स दाखवतात. पायथनमधील डेकोरेटर वापरून परिभाषित केले आहे def एक फंक्शन तयार करण्यासाठी कीवर्ड जे दुसरे फंक्शन वितर्क म्हणून घेते आणि नवीन फंक्शन परत करते. द डेकोरेटर एफ-स्ट्रिंग फॉरमॅटिंग वापरून एचटीएमएल ठळक टॅगसह सजवलेल्या फंक्शनचा परिणाम गुंडाळतो: f"<b>{func()}</b>". त्याचप्रमाणे, द make_italic डेकोरेटर परिणाम इटॅलिक टॅगमध्ये गुंडाळतो: f"<i>{func()}</i>". जेव्हा हे डेकोरेटर्स वापरून फंक्शनवर लागू केले जातात सिंटॅक्स, ते संबंधित HTML टॅग जोडून फंक्शनचे आउटपुट सुधारतात.

दुसरी स्क्रिप्ट हायर-ऑर्डर फंक्शन तयार करून अधिक बहुमुखी दृष्टीकोन सादर करते, add_html_tag, जे कोणत्याही निर्दिष्ट HTML टॅगसाठी डेकोरेटर व्युत्पन्न करते. हे फंक्शन आर्ग्युमेंट म्हणून HTML टॅग घेते आणि निर्दिष्ट टॅगमध्ये फंक्शनचे आउटपुट गुंडाळणारे डेकोरेटर देते: . वापरून @add_html_tag("b") आणि , चे आउटपुट गुंडाळण्यासाठी आम्ही या डेकोरेटर्सला साखळी करू शकतो say_hello ठळक आणि तिर्यक दोन्ही टॅगमध्ये कार्य, परिणामी इच्छित "नमस्कार". ही उदाहरणे स्वच्छ आणि पुन्हा वापरता येण्याजोग्या पद्धतीने फंक्शन वर्तन वाढवण्यामध्ये आणि सानुकूलित करण्यात पायथन डेकोरेटर्सची शक्ती आणि लवचिकता दर्शवतात.

पायथनमध्ये डेकोरेटर्सची अंमलबजावणी आणि चेनिंग

डेकोरेटर्स तयार करण्यासाठी आणि साखळी बांधण्यासाठी पायथन स्क्रिप्ट

def make_bold(func):
    def wrapper():
        return f"<b>{func()}</b>"
    return wrapper

def make_italic(func):
    def wrapper():
        return f"<i>{func()}</i>"
    return wrapper

@make_bold
@make_italic
def say():
    return "Hello"

print(say())

पायथन डेकोरेटर्स वापरून HTML टॅग तयार करणे

फंक्शन मॉडिफिकेशन आणि एचटीएमएल टॅगिंगसाठी पायथन स्क्रिप्ट

प्रगत पायथन डेकोरेटर तंत्र

साध्या फंक्शन मॉडिफिकेशनच्या पलीकडे, पायथन डेकोरेटर्स कोडची पुन: उपयोगिता आणि देखभालक्षमता वाढविण्यासाठी एक शक्तिशाली मार्ग देतात. एक प्रगत वापर केस पॅरामीटराइज्ड डेकोरेटर्स आहे, जे डेकोरेटर्सना युक्तिवाद स्वीकारण्याची परवानगी देतात. हे तंत्र सह सचित्र होते add_html_tag मागील उदाहरणांमध्ये डेकोरेटर. इतर डेकोरेटर व्युत्पन्न करणाऱ्या डेकोरेटरची व्याख्या करून, आम्ही अत्यंत लवचिक आणि पुन्हा वापरता येण्याजोग्या कोड स्ट्रक्चर्स तयार करू शकतो. पॅरामीटराइज्ड डेकोरेटर्स आम्हाला डेकोरेटरला पॅरामीटर्स पास करण्यास सक्षम करतात, ज्यामुळे कार्य वर्तनात डायनॅमिक आणि संदर्भ-विशिष्ट बदल करण्याची परवानगी मिळते.

डेकोरेटर्सचा आणखी एक महत्त्वाचा पैलू म्हणजे फंक्शन मेटाडेटा राखण्याची त्यांची क्षमता. जेव्हा एखादे कार्य डेकोरेटरद्वारे गुंडाळले जाते, तेव्हा त्याचा मेटाडेटा, जसे की त्याचे नाव आणि डॉकस्ट्रिंग, गमावले जाऊ शकते. हा मेटाडेटा जतन करण्यासाठी, पायथनचा functools.wraps डेकोरेटरमध्ये वापरले जाते. अर्ज करून @functools.wraps रॅपर फंक्शनवर, मूळ फंक्शनचा मेटाडेटा कॉपी केला जातो, हे सुनिश्चित करून की या मेटाडेटावर अवलंबून असलेली साधने, जसे की दस्तऐवजीकरण जनरेटर, योग्यरित्या कार्य करत आहेत. याव्यतिरिक्त, सह दर्शविल्याप्रमाणे, डेकोरेटर स्टॅक केले जाऊ शकतात @make_bold आणि १५ उदाहरणे, स्वच्छ आणि वाचनीय पद्धतीने वर्तन सुधारणांचे अनेक स्तर लागू करण्यासाठी.

पायथन डेकोरेटर्सबद्दल सामान्य प्रश्न

  1. पायथनमध्ये डेकोरेटर म्हणजे काय?
  2. डेकोरेटर हे एक फंक्शन आहे जे दुसऱ्या फंक्शनचे वर्तन सुधारते, सामान्यत: पुन्हा वापरण्यायोग्य पद्धतीने कार्यक्षमता जोडण्यासाठी वापरले जाते.
  3. फंक्शनमध्ये डेकोरेटर कसा लागू करता?
  4. आपण वापरून डेकोरेटर लागू करा सिंटॅक्स थेट फंक्शन व्याख्येच्या वर.
  5. तुम्ही एकाच फंक्शनसाठी अनेक डेकोरेटर लागू करू शकता?
  6. होय, एका फंक्शनच्या वर अनेक डेकोरेटर्स स्टॅक केले जाऊ शकतात, प्रत्येक ते सूचीबद्ध केलेल्या क्रमाने लागू केले जातात.
  7. पॅरामीटराइज्ड डेकोरेटर म्हणजे काय?
  8. पॅरामीटराइज्ड डेकोरेटर हा एक डेकोरेटर आहे जो युक्तिवाद घेतो, अधिक गतिमान आणि लवचिक बदलांना अनुमती देतो.
  9. डेकोरेटर वापरताना तुम्ही फंक्शनचा मेटाडेटा कसा राखता?
  10. तुम्ही वापरा @functools.wraps मूळ फंक्शनचा मेटाडेटा रॅपर फंक्शनमध्ये कॉपी करण्यासाठी डेकोरेटरमध्ये.
  11. डेकोरेटर उपयुक्त का आहेत?
  12. डेकोरेटर कोडचा पुनर्वापर, वाचनीयता आणि कार्यक्षमता एन्कॅप्स्युलेट करून समस्या वेगळे करण्यासाठी उपयुक्त आहेत.
  13. चा उद्देश काय आहे १८ डेकोरेटर मध्ये विधान?
  14. १८ डेकोरेटरचे बदल प्रभावीपणे लागू करून स्टेटमेंट आतील फंक्शन परत करते.
  15. वर्ग पद्धतींवर डेकोरेटर्स वापरता येतील का?
  16. होय, डेकोरेटर त्यांच्या वर्तनात सुधारणा करण्यासाठी वर्ग आणि उदाहरण दोन्ही पद्धतींवर वापरले जाऊ शकतात.
  17. तुम्ही पायथनमध्ये डेकोरेटर्सची साखळी कशी करता?
  18. साखळी सजावट करण्यासाठी, एकाधिक स्टॅक करा फंक्शन व्याख्येच्या वरची विधाने.
  19. डेकोरेटर्समध्ये एफ-स्ट्रिंगचा उपयोग काय आहे?
  20. एफ-स्ट्रिंग्सचा वापर डेकोरेटर्समध्ये स्ट्रिंग्स फॉरमॅट करण्यासाठी केला जातो, ज्यामुळे HTML टॅग्स सारख्या विशिष्ट फॉरमॅटमध्ये फंक्शन आउटपुट डायनॅमिक इन्सर्ट करता येतात.

Python मध्ये फंक्शन डेकोरेटर्सचा सारांश

पायथनमधील फंक्शन डेकोरेटर्स फंक्शन वर्तन सुधारण्यासाठी आणि वाढविण्यासाठी एक मजबूत पद्धत देतात. कसे तयार करायचे, लागू करायचे आणि चेन डेकोरेटर कसे बनवायचे हे समजून घेऊन, तुम्ही तुमच्या कोडची मॉड्यूलरिटी आणि वाचनीयता लक्षणीयरीत्या सुधारू शकता. या मार्गदर्शकामध्ये साधे आणि पॅरामीटराइज्ड डेकोरेटर्स, फंक्शन मेटाडेटा जतन करणे यासारख्या आवश्यक संकल्पना समाविष्ट आहेत functools.wraps, आणि फंक्शन आउटपुटमध्ये HTML टॅग जोडण्यासाठी डेकोरेटर्सचे व्यावहारिक अनुप्रयोग. या तंत्रांचे प्रभुत्व अधिक गतिमान आणि देखभाल करण्यायोग्य कोड सक्षम करते, क्लिनर आणि अधिक कार्यक्षम प्रोग्रामिंग पद्धती सुलभ करते.