Tôi đã trải qua hầu hết các tài liệu về __getitem__ các tài liệu Python, nhưng tôi vẫn không thể nắm bắt được ý nghĩa của nó.
Vì vậy, tất cả những gì tôi có thể hiểu là __getitem__được sử dụng để thực hiện các cuộc gọi như thế nào self[key]. Nhưng công dụng của nó là gì?
Hãy nói rằng tôi có một lớp python được định nghĩa theo cách này:
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
def __getitem__(self,key):
print ("Inside `__getitem__` method!")
return getattr(self,key)
p = Person("Subhayan",32)
print (p["age"])
Điều này trả về kết quả như mong đợi. Nhưng tại sao lại sử dụng __getitem__ngay từ đầu? Tôi cũng đã nghe rằng Python gọi __getitem__nội bộ. Nhưng tại sao nó làm điều đó?
Ai đó có thể vui lòng giải thích điều này chi tiết hơn?
__getitem__sử dụng trong ví dụ của bạn không có nhiều ý nghĩa, nhưng hãy tưởng tượng rằng bạn cần phải viết một lớp giống như từ điển hoặc danh sách tùy chỉnh, phải hoạt động với mã hiện có sử dụng []. Đó là một tình huống có __getitem__ích.