các phương thức ảo thuật cho phép chúng ta thực hiện một số thủ thuật khá gọn gàng trong lập trình hướng đối tượng. Các phương thức này được xác định bằng hai dấu gạch dưới (__) được sử dụng làm tiền tố và hậu tố. Ví dụ:hoạt động như các bộ chặn được tự động gọi khi đáp ứng các điều kiện nhất định.
Trong python __repr__ là một hàm tích hợp được sử dụng để tính toán biểu diễn chuỗi "chính thức" của một đối tượng, trong khi __str__ là một hàm tích hợp để tính toán biểu diễn chuỗi "không chính thức" của một đối tượng.
Mã mẫu
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)
Đầu ra
<__main__.String object at 0x000000BF0D411908>
Mã mẫu
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)
Đầu ra
Object: Python
Chúng tôi đang cố gắng thêm một chuỗi vào nó.
Mã mẫu
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')
Đầu ra
TypeError: unsupported operand type(s) for +: 'String' and 'str'
Bây giờ hãy thêm phương thức __add__ vào lớp Chuỗi
Mã mẫu
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')
Đầu ra
Hello Python