Python sử dụng từ "phương pháp kỳ diệu" , bởi vì những phương pháp đó thực sự thực hiện phép thuật cho bạn lập trình. Một trong những lợi thế lớn nhất của việc sử dụng các phương thức ma thuật của Python là chúng cung cấp một cách đơn giản để làm cho các đối tượng hoạt động giống như các kiểu tích hợp sẵn. Điều đó có nghĩa là bạn có thể tránh những cách xấu xí, phản trực quan và không chuẩn để thực hiện các toán tử cơ bản.
Hãy xem xét một ví dụ sau:
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'
Điều này gây ra lỗi, vì loại từ điển không hỗ trợ thêm. Bây giờ, hãy mở rộng lớp từ điển và thêm phương thức ma thuật "__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)
Bây giờ, nó cho kết quả sau.
{1: 'ABC', 2: 'EFG'}
Do đó, bằng cách thêm phương pháp này, đột nhiên phép thuật đã xảy ra và lỗi bạn gặp phải trước đó đã biến mất.
Tôi hy vọng, nó làm cho mọi thứ rõ ràng với bạn. Để biết thêm thông tin, hãy tham khảo:
Hướng dẫn về các phương pháp kỳ diệu của Python (Rafe Kettler, 2012)
len()
hoặcreversed()
áp dụng cho nhiều loại đối tượng, nhưng một phương pháp nhưappend()
chỉ áp dụng cho chuỗi vv