Python 从下标表示法构建切片对象

Python 从下标表示法构建切片对象,python,slice,Python,Slice,我想从下标符号中获取切片对象。到目前为止,我使用了一个黑客技巧来利用Python内置的下标到切片转换功能: class Slice: def __getitem__(self, item): return item 例如,Slice()[1:2]将返回Slice(1,2,无) 有人知道更简单的方法吗?如果您必须使用下标表示法,那么您当前的解决方案是最紧凑的,除了可能使用以下方法创建的动态类之外: 但是像这样的代码通常很难理解/维护/扩展/等等 相反,我建议您使用,它允许

我想从下标符号中获取切片对象。到目前为止,我使用了一个黑客技巧来利用Python内置的下标到切片转换功能:

class Slice:
    def __getitem__(self, item):
        return item
例如,
Slice()[1:2]
将返回
Slice(1,2,无)

有人知道更简单的方法吗?

如果您必须使用下标表示法,那么您当前的解决方案是最紧凑的,除了可能使用以下方法创建的动态类之外:

但是像这样的代码通常很难理解/维护/扩展/等等

相反,我建议您使用,它允许您直接创建切片对象:

>>> slice(1, 2)
slice(1, 2, None)
>>> slice(1, 2, 3)
slice(1, 2, 3)
>>>

内置的是专门为这个目的而设计的(好吧,还有一些其他功能,比如使用
isinstance
)进行类型检查),因此非常便携,而且非常适合pythonic。

您能详细说明一下吗?Python有一个内置的切片函数,你到底想切片什么?为什么它必须来自下标符号?Python有一个内置函数,允许您直接构造切片对象:
my_slice=slice(1,2)
。我不必使用下标表示法。我喜欢它,因为它允许您从一个紧凑的表示法构造许多切片。
>>> slice(1, 2)
slice(1, 2, None)
>>> slice(1, 2, 3)
slice(1, 2, 3)
>>>