📜  在 __getitem__ 中实现切片

📅  最后修改于: 2022-05-13 01:55:28.926000             🧑  作者: Mango

在 __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 在类中传递的切片对象。