深入切片,我们会发现作为python特有的切片特性可以让我们的代码更优雅,更高效。(=-=也不一定)
我们知道切片的背后调用__geitem__特殊方法,实际上lsit[]中的[]只是一个语法糖(方便的写法)
class seq():
def __getitem__(self, index):
return index
seq = seq()
#slice对象是实现切片的背后
print(seq[1])
print(seq[1:3])
print(seq[1:3:2])
#slice对象的indices方法为slice处理切片超出,例如:索引为负数的情况。
print(dir(slice.indices))
那么知道了这个有什么用呢?
我们可以对索引进行命名使代码更简明易懂
str1 = 'jjjjj------15768541314------hhhhhh' phone_number = slice(11,22) print(str1[phone_number])
也可以让我们的类变得更强大,完善
import numbers
class seq():
def __init__(self, sequence):
self.sequence= sequence
def __getitem__(self, index):
if isinstance(index, numbers.Integral):
return list[index]
elif isinstance(index, slice):
return seq(list[index])
感谢观看!



