ম্যাজিক পদ্ধতি যা আমাদের অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং-এ কিছু সুন্দর কৌশল করতে দেয়। এই পদ্ধতিগুলি উপসর্গ এবং প্রত্যয় হিসাবে ব্যবহৃত দুটি আন্ডারস্কোর (__) দ্বারা চিহ্নিত করা হয়। উদাহরণস্বরূপ, ইন্টারসেপ্টর হিসাবে কাজ করে যা কিছু শর্ত পূরণ হলে স্বয়ংক্রিয়ভাবে কল করা হয়।
পাইথনে __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