Python में @ सिंबल (डेकोरेटर)
@ सिंबल Python में डेकोरेटर को परिभाषित करने के लिए उपयोग किया जाता है। डेकोरेटर्स उच्च-क्रम फ़ंक्शन को कॉल करने के लिए एक सरल सिंटैक्स प्रदान करते हैं। परिभाषा के अनुसार, एक डेकोरेटर एक फ़ंक्शन है जो दूसरे फ़ंक्शन को लेता है और बाद वाले फ़ंक्शन के व्यवहार को स्पष्ट रूप से संशोधित किए बिना बढ़ाता है।
Python में हमारे पास दो अलग-अलग प्रकार के डेकोरेटर्स हैं:
- Function decorators (फ़ंक्शन डेकोरेटर्स)
- Class decorators (क्लास डेकोरेटर्स)
Python में एक डेकोरेटर कोई भी कॉल करने योग्य Python ऑब्जेक्ट है जिसका उपयोग फ़ंक्शन या क्लास को संशोधित करने के लिए किया जाता है। एक फ़ंक्शन या क्लास का संदर्भ डेकोरेटर को पास किया जाता है और डेकोरेटर एक संशोधित फ़ंक्शन या क्लास लौटाता है। संशोधित फ़ंक्शन या क्लास में आमतौर पर मूल फ़ंक्शन के कॉल होते हैं।
@decorator
def f(argument):
...
यह f को decorator(f) द्वारा प्रतिस्थापित करेगा: f(argument) को कॉल करना तब decorator(f)(argument) के बराबर है।