__getitem__

  • 让对象拥有索引的特性
class C:

    def __getitem__(self, item):
        if type(item) == slice:
            return item.start, item.stop, item.step
        return item

    def __setitem__(self, key, value):
        if type(key) == slice:
            pass
        print(key, value)

    def __delitem__(self, key):
        if type(key) == slice:
            pass
        print(key)

obj = C()
r = obj[1]   #调用__getitem__方法
obj[2] = 'v' #调用__setitem__方法
del obj[3]   #调用__delitem__方法

r = obj[1:10:2]   #调用__getitem__方法
obj[1:3] = ['v1', 'v2', 'v3']   #调用__setitem__方法
del obj[1:3]   #调用__delitem__方法
原文地址:https://www.cnblogs.com/dongmengze/p/9516775.html