gpt4 book ai didi

python - 从下标符号构建切片对象

转载 作者:太空宇宙 更新时间:2023-11-04 03:41:02 26 4
gpt4 key购买 nike

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

class Slice:
def __getitem__(self, item):
return item

例如,Slice()[1:2] 将返回 slice(1,2,None)

有谁知道更直接的方法吗?

最佳答案

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

>>> Slice = type('', (), {'__getitem__': lambda _, x: x})()
>>> Slice[1:2]
slice(1, 2, None)
>>> Slice[1:2:3]
slice(1, 2, 3)
>>>

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

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

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

内置的是专门为此目的而制作的(好吧,还有一些其他的,例如使用 isinstance 进行类型检查),因此非常可移植和 pythonic。

关于python - 从下标符号构建切片对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26453595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com