- slice函数
作用:
用于创建一个Slice切片对象
此对象存储一个节点的起始值,终止值和步长信息
slice(start,stop=None,step=None) 创建一个切片对象
- slice的对象的属性
s.start 切片起始值,默认为None
s.stop 切片终止值,默认为None
s.step 切片步长,默认为None
说明:平常使用的[::]实际上是系统自动转换为
slice(start,stop,step)的对象然后传递给索引参数
即:L[::2] 实际上是L[slice(None,None,2)]
更本质上是L.__getitem__(slice(None,None,2))
示例:
#在解释器中输入:
L = [1,2,3,4,5,6,7,8,9]
L[::2] #[1,3,5,7,9]
L[slice(None,None,2)] #[1,3,5,7,9]
L.__getitem__(slice(None,None,2)) #[1,3,5,7,9]
练习:
class MyList:
def __init__(self,iterable):
self.data = list(iterable)
def __getitem__(self,i):
if type(i) is int:
print('正在做索引操作')
elif type(i) is slice:
print('正在做切片操作')
print('切片开始值是',i.start)
print('切片终止值是',i.stop)
print('步长是',i.step)
else:
raise KeyError
return self.data[i]
L = Mylist([1,3,5,7,9])
print(L[::2])