L = [11, 21, 31, 41] 和L[0:2]
不是“底层用了 slice()”,而是 Python 解释器在看到 L[0:2] 时,会当场 把字面量 0:2 解释成一个临时的 slice(0, 2, None) 对象,再把这个对象传给 L.__getitem__。
L[0:2] # 语法糖
L.__getitem__( slice(0, 2, None) ) # 实际发生
那 slice() 有什么用?
slice 对象例子 1:把切片存起来,反复用
head = slice(0, 2)
for lst in lists:
print(lst[head]) # 复用同一个切片