深入切片,我们会发现作为python特有的切片特性可以让我们的代码更优雅,更高效。(=-=也不一定)
我们知道切片的背后调用__geitem__特殊方法,实际上lsit[]中的[]只是一个语法糖(方便的写法)
class seq():
def __getitem__(self, index):
return index
seq = seq()
print(seq[1])
print(seq[1:3])
print(seq[1:3:2])
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])
感谢观看!
|