官方文档
如果想模拟一个容器类 具体请参考官方文档: https://docs.python.org/zh-cn/3/reference/datamodel.html#emulating-container-types 这里只介绍几个常用的XXX属性和方法
重载[ ]运算符:
getitem
可以直接通过 对象名[参数] 直接调用getitem方法
class Name(object):
def __getitem__(self,val):
print(val)
return None
pass
obj = Name()
obj["Hibari"] # 这句语句 实际上运行的是
# obj.__getitem__("Hibari")
切片类:
没错,切片是一种类!!! 类型为
平时在list列表里用切片,其实就是 的对象 这种类型不能单独使用,需要配合getitem方法一起使用
class Name(object):
def __getitem__(self,val):
print("val-Type:", type(val))
print("Slice-Start:",val.start)
print("Slice-Stop:", val.stop)
print("Slice-Step:",val.step)
return None
pass
obj = Name()
obj[1:2:3]
#运行结果
#====================================
Type: <class 'slice'>
Value: slice(1, 2, 3)
Slice-Start: 1
Slice-Stop: 2
Slice-Step: 3