जादू के तरीके जो हमें ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में कुछ सुंदर साफ-सुथरी तरकीबें करने की अनुमति देते हैं। इन विधियों को उपसर्ग और प्रत्यय के रूप में उपयोग किए जाने वाले दो अंडरस्कोर (__) द्वारा पहचाना जाता है। उदाहरण के लिए, इंटरसेप्टर के रूप में कार्य करते हैं जो कुछ शर्तों के पूरा होने पर स्वचालित रूप से कॉल किए जाते हैं।
पायथन में __repr__ एक अंतर्निहित फ़ंक्शन है जिसका उपयोग किसी ऑब्जेक्ट के "आधिकारिक" स्ट्रिंग प्रतिनिधित्व की गणना करने के लिए किया जाता है, जबकि __str__ एक अंतर्निहित फ़ंक्शन है जो किसी ऑब्जेक्ट के "अनौपचारिक" स्ट्रिंग प्रतिनिधित्व की गणना करता है।
उदाहरण कोड
class String:
# magic method to initiate object
def __init__(self, string):
self.string = string
# Driver Code
if __name__ == '__main__':
# object creation
my_string = String('Python')
# print object location
print(my_string)
आउटपुट
<__main__.String object at 0x000000BF0D411908>. पर
उदाहरण कोड
class String:
# magic method to initiate object
def __init__(self, string):
self.string = string
# print our string object
def __repr__(self):
return 'Object: {}'.format(self.string)
# Driver Code
if __name__ == '__main__':
# object creation
my_string = String('Python')
# print object location
print(my_string)
आउटपुट
Object: Python
हम इसमें एक स्ट्रिंग जोड़ने का प्रयास कर रहे हैं।
उदाहरण कोड
class String:
# magic method to initiate object
def __init__(self, string):
self.string = string
# print our string object
def __repr__(self):
return 'Object: {}'.format(self.string)
# Driver Code
if __name__ == '__main__':
# object creation
my_string = String('Python')
# concatenate String object and a string
print(my_string + ' Program')
आउटपुट
TypeError: unsupported operand type(s) for +: 'String' and 'str'
अब स्ट्रिंग क्लास में __add__ विधि जोड़ें
उदाहरण कोड
class String:
# magic method to initiate object
def __init__(self, string):
self.string = string
# print our string object
def __repr__(self):
return 'Object: {}'.format(self.string)
def __add__(self, other):
return self.string + other
# Driver Code
if __name__ == '__main__':
# object creation
my_string = String('Hello')
# concatenate String object and a string
print(my_string +' Python')
आउटपुट
Hello Python