Python Academy · पाठ

डेकोरेटर

फ़ंक्शन को संशोधित या विस्तारित करने के लिए डेकोरेटर का उपयोग करना सीखें

पाठ 1, कुल 5 में से11 चरण

डेकोरेटर, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 5 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 5 पाठ शामिल हैं।

decorator का परिचय

decorator पाइथन की एक शक्तिशाली सुविधा है, जो आपको फ़ंक्शन या विधियों के व्यवहार को बदलने देती है। इनका उपयोग अक्सर फ़ंक्शन के कोड में बदलाव किए बिना उसमें नई कार्यक्षमता जोड़ने के लिए किया जाता है।

इस पाठ में आप सीखेंगे कि decorator क्या होते हैं, उनका उपयोग कैसे करें और अपने decorator कैसे बनाएँ।

डेकोरेटर — चित्र 1

decorator क्या है?

decorator एक ऐसा फ़ंक्शन है, जो किसी दूसरे फ़ंक्शन को इनपुट के रूप में लेता है और अतिरिक्त कार्यक्षमता वाला नया फ़ंक्शन लौटाता है। इसका उपयोग अक्सर @decorator_name वाक्यविन्यास के साथ किया जाता है।

# Basic example of a decorator
def decorator(func):
    def wrapper():
        print("Before the function call")
        func()
        print("After the function call")
    return wrapper

@decorator
def say_hello():
    print("Hello!")

say_hello()

decorator कैसे काम करते हैं

जब आप decorator का उपयोग करते हैं, तो पाइथन मूल फ़ंक्शन को decorator द्वारा लौटाए गए wrapper फ़ंक्शन से बदल देता है।

# How decorators work
def decorator(func):
    def wrapper():
        print("Wrapper called")
        func()
    return wrapper

@decorator
def greet():
    print("Greetings!")

print(greet.__name__)  # Outputs: wrapper
greet()

तर्कों के साथ decorator का उपयोग

decorator ऐसे फ़ंक्शन के साथ काम कर सकते हैं, जो तर्क लेते हैं। इसके लिए wrapper फ़ंक्शन में *args और **kwargs का उपयोग किया जाता है:

# Decorator for functions with arguments
def decorator(func):
    def wrapper(*args, **kwargs):
        print(f"Arguments: {args}, {kwargs}")
        return func(*args, **kwargs)
    return wrapper

@decorator
def add(a, b):
    return a + b

print(add(3, 5))

एकाधिक decorator को श्रृंखलाबद्ध करना

आप एक ही फ़ंक्शन पर कई decorator का उपयोग कर सकते हैं। उन्हें ऊपर से नीचे तक, जिस क्रम में वे दिखाई देते हैं, उसी क्रम में लागू किया जाता है:

# Chaining multiple decorators
def decorator1(func):
    def wrapper():
        print("Decorator 1")
        func()
    return wrapper

def decorator2(func):
    def wrapper():
        print("Decorator 2")
        func()
    return wrapper

@decorator1
@decorator2
def greet():
    print("Hello!")

greet()

पैरामीटर वाले decorator बनाना

पैरामीटर वाले decorator तर्क स्वीकार करते हैं और अधिक लचीली कार्यक्षमता प्रदान करते हैं:

# Parameterized decorator
def repeat(times):
    def decorator(func):
        def wrapper(*args, **kwargs):
            for _ in range(times):
                func(*args, **kwargs)
        return wrapper
    return decorator

@repeat(3)
def say_hello():
    print("Hello!")

say_hello()

decorator के सामान्य उपयोग

decorator का सामान्यतः इन कार्यों के लिए उपयोग किया जाता है:

  • फ़ंक्शन कॉल और उनके तर्कों का लॉग दर्ज करना।
  • फ़ंक्शन के निष्पादन समय को मापना।
  • पहुँच नियंत्रण करना, जैसे उपयोगकर्ता की अनुमतियों की जाँच करना।
  • प्रदर्शन सुधारने के लिए परिणामों को कैश में रखना।

Python में अंतर्निर्मित decorator

Python में कुछ अंतर्निर्मित decorator उपलब्ध हैं, जिनमें ये शामिल हैं:

  • @staticmethod: स्थैतिक विधि परिभाषित करता है।
  • @classmethod: वर्ग विधि परिभाषित करता है।
  • @property: गुण विधि परिभाषित करता है।

decorator से जुड़ी सामान्य गलतियाँ

इन गलतियों से बचें:

  • मूल फ़ंक्शन का नाम और दस्तावेज़-स्ट्रिंग सुरक्षित न रखना (functools.wraps का उपयोग करें)।
  • सरल कार्यों के लिए अनावश्यक रूप से decorator का उपयोग करना।
  • wrapper फ़ंक्शन में तर्कों को संभालना भूल जाना।

हमने क्या सीखा?

इस पाठ में आपने सीखा:

  • decorator क्या होते हैं और Python में कैसे काम करते हैं।
  • मूल, पैरामीटर वाले और श्रृंखलाबद्ध decorator कैसे बनाए और उपयोग किए जाते हैं।
  • Python में decorator के सामान्य उपयोग और अंतर्निर्मित decorator।

बहुत अच्छा! अब अगले विषय पर चलते हैं।

डेकोरेटर — चित्र 11
शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
76
पाठ
320

अक्सर पूछे जाने वाले प्रश्न

क्या “डेकोरेटर” पाठ निःशुल्क है?

हाँ—“डेकोरेटर” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 5 पाठ शामिल हैं।

“डेकोरेटर” में मैं क्या सीखूँगा?

फ़ंक्शन को संशोधित या विस्तारित करने के लिए डेकोरेटर का उपयोग करना सीखें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 5 में से 1वाँ पाठ है।

“डेकोरेटर” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. डेकोरेटर
  2. जनरेटर
  3. कॉन्टेक्स्ट मैनेजर (with स्टेटमेंट)
  4. कॉम्प्रिहेंशन (सूची, सेट और डिक्शनरी)
  5. इटरेटर और इटरेबल
← Python Academy पर वापस जाएँ