在 __getitem__ 中实现切片
__getitem__方法用于访问列表项、数组元素、字典条目等。 slice是Python中的构造函数,它创建 slice 对象来表示 range(start, stop, step) 指定的索引集。 __getitem__ method
可以在一个类中实现,切片的行为可以在其中定义。
句法:
__getitem__(slice(start, stop, step))
范围:
- slice() :创建切片对象的构造函数。
- start:指定起始索引的整数。可选,默认为0。
- stop:指定结束索引的整数。
- step:指定切片步骤的整数。它是可选的并且
默认值为 1。
示例 1:
# abcde is string can be
# an array as well.
sliced ='abcde'.__getitem__(slice(0, 2, 1))
print(sliced)
输出
ab
解释:
字符串abcde以起始索引 0 切片,停止索引 2 以步长索引 1 切片,因此它从字符串切片ab并打印输出。
示例 2:
class Demo:
def __getitem__(self, key):
# print a[1], a[1, 2],
# a[1, 2, 3]
print(key)
return key
a = Demo()
# => slice 1
a[1]
# => slice(1, 2)
a[1, 2]
# => (1, 2, 3)
a[1, 2, 3]
输出
1
(1, 2)
(1, 2, 3)
解释:
类演示具有__getitem__
方法,切片以逗号分隔。 Key 打印通过变量 a 在类中传递的切片对象。