ฉันได้อ่านเอกสารส่วนใหญ่__getitem__ใน Python docs แล้ว แต่ฉันยังไม่สามารถเข้าใจความหมายของมันได้
ดังนั้นสิ่งที่ฉันเข้าใจก็__getitem__คือใช้เพื่อใช้การโทรเช่นself[key]. แต่การใช้งานมันคืออะไร?
สมมติว่าฉันมีคลาส python ที่กำหนดด้วยวิธีนี้:
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"])
ส่งคืนผลลัพธ์ตามที่คาดไว้ แต่ทำไมต้องใช้__getitem__ตั้งแต่แรก? ฉันยังเคยได้ยินว่า Python เรียก__getitem__ภายใน แต่ทำไมมันถึงทำ?
ใครช่วยอธิบายรายละเอียดเพิ่มเติมได้ไหม
__getitem__ใช้ในตัวอย่างของคุณไม่ได้ทำให้ความรู้สึกมาก แต่คิดว่าคุณต้องเขียน list- ที่กำหนดเองหรือพจนานุกรมเช่น class []ที่มีการทำงานที่มีรหัสที่มีอยู่ที่การใช้งาน นั่นเป็นสถานการณ์ที่__getitem__มีประโยชน์