Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में डंडर या मैजिक मेथड्स

मैजिक मेथड्स वे मेथड्स हैं जो हमें ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में कुछ बहुत अच्छे ट्रिक्स करने की अनुमति देते हैं। इन मेथड्स की पहचान दो अंडरस्कोर (__) द्वारा की जाती है जिनका उपयोग प्रीफिक्स और सफिक्स के रूप में किया जाता है। उदाहरण के लिए, फ़ंक्शन इंटरसेप्टर्स के रूप में जो तब स्वचालित रूप से कॉल किए जाते हैं जब कुछ शर्तें पूरी होती हैं।

Python में __repr__ एक बिल्ट-इन फ़ंक्शन है जिसका उपयोग ऑब्जेक्ट के "आधिकारिक" स्ट्रिंग रिप्रेजेंटेशन की गणना के लिए किया जाता है, जबकि __str__ एक बिल्ट-इन फ़ंक्शन है जो ऑब्जेक्ट के "अनौपचारिक" स्ट्रिंग रिप्रेजेंटेशन की गणना करता है।

उदाहरण कोड - बिना __repr__ के

class String:
    def __init__(self, string):
        self.string = string
if __name__ == '__main__':
    my_string = String('Python')
    print(my_string)

आउटपुट

<__main__.String object at 0x000000BF0D411908>

उदाहरण कोड - __repr__ के साथ

class String:
    def __init__(self, string):
        self.string = string
    def __repr__(self):
        return 'Object: {}'.format(self.string)
if __name__ == '__main__':
    my_string = String('Python')
    print(my_string)

आउटपुट

Object: Python

इसमें एक स्ट्रिंग जोड़ने का प्रयास

उदाहरण कोड - __add__ के बिना

class String:
    def __init__(self, string):
        self.string = string
    def __repr__(self):
        return 'Object: {}'.format(self.string)
if __name__ == '__main__':
    my_string = String('Python')
    print(my_string + ' Program')

आउटपुट

TypeError: unsupported operand type(s) for +: 'String' and 'str'

अब String क्लास में __add__ मेथड जोड़ें

उदाहरण कोड - __add__ के साथ

class String:
    def __init__(self, string):
        self.string = string
    def __repr__(self):
        return 'Object: {}'.format(self.string)
    def __add__(self, other):
        return self.string + other
if __name__ == '__main__':
    my_string = String('Hello')
    print(my_string + ' Python')

आउटपुट

Hello Python
  1. - स्ट्रिंग को Python क्लास ऑब्जेक्ट में कैसे बदलें?

    यूज़र इनपुट के रूप में दी गई स्ट्रिंग से, यदि वर्तमान नेमस्पेस में उस नाम की क्लास मौजूद है, तो क्लास ऑब्जेक्ट प्राप्त करना चाहते हैं। उदाहरण class Foobar: pass print(eval(Foobar)) print(type(Foobar)) आउटपुट __main__.Foobar <type classobj> स्ट्रिंग को क्लास ऑब्जेक्ट में बदलने का दूसरा तरी

  1. - पायथन में टाइमस्टैम्प स्ट्रिंग को डेटाइम ऑब्जेक्ट में कैसे बदलें?

    आप datetime मॉड्यूल से fromtimestamp फंक्शन का उपयोग करके UNIX टाइमस्टैम्प से डेट प्राप्त कर सकते हैं। यह फंक्शन टाइमस्टैम्प को इनपुट के रूप में लेता है और टाइमस्टैम्प से मेल खाने वाला डेटाइम ऑब्जेक्ट लौटाता है। उदाहरण import datetime timestamp = datetime.datetime.fromtimestamp(1500000000) print(t

  1. - पायथन डेट स्ट्रिंग को डेट ऑब्जेक्ट में कैसे बदलें?

    आप strptime फंक्शन का उपयोग करके स्ट्रिंग को डेट ऑब्जेक्ट में बदल सकते हैं। डेट स्ट्रिंग और वह फॉर्मेट प्रदान करें जिसमें डेट निर्दिष्ट है। उदाहरण import datetime date_str = 29122017 # डेट - 29 दिसंबर 2017 format_str = %d%m%Y # फॉर्मेट datetime_obj = datetime.datetime.strptime(date_str, format_s