पायथन शब्द "मैजिक मेथड्स" का उपयोग करता है , क्योंकि वे तरीके वास्तव में आपके लिए जादू का काम करते हैं। पायथन के जादू के तरीकों का उपयोग करने का एक सबसे बड़ा लाभ यह है कि वे वस्तुओं को बिल्ट-इन प्रकारों की तरह व्यवहार करने का एक सरल तरीका प्रदान करते हैं। इसका मतलब है कि आप बुनियादी ऑपरेटरों के प्रदर्शन के बदसूरत, प्रति-सहज ज्ञान युक्त और गैर-मानक तरीकों से बच सकते हैं।
एक निम्नलिखित उदाहरण पर विचार करें:
dict1 = {1 : "ABC"}
dict2 = {2 : "EFG"}
dict1 + dict2
Traceback (most recent call last):
File "python", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'dict' and 'dict'
यह एक त्रुटि देता है, क्योंकि शब्दकोश प्रकार इसके अतिरिक्त समर्थन नहीं करता है। अब, शब्दकोश कक्षा का विस्तार करते हैं और "__add__" जादू विधि जोड़ते हैं :
class AddableDict(dict):
def __add__(self, otherObj):
self.update(otherObj)
return AddableDict(self)
dict1 = AddableDict({1 : "ABC"})
dict2 = AddableDict({2 : "EFG"})
print (dict1 + dict2)
अब, यह निम्नलिखित आउटपुट देता है।
{1: 'ABC', 2: 'EFG'}
इस प्रकार, इस पद्धति को जोड़कर, अचानक जादू हो गया है और जो त्रुटि आपको पहले मिल रही थी, वह दूर हो गई है।
मुझे उम्मीद है, यह आपके लिए चीजों को स्पष्ट करता है। अधिक जानकारी के लिए, यहां देखें:
पायथन के मैजिक मेथड्स के लिए एक गाइड (कैफे केटलर, 2012)
len()
याreversed()
कई प्रकार की वस्तुओं पर लागू होता है, लेकिन एक विधि जैसे किappend()
केवल अनुक्रमों पर लागू होती है, आदि