如何在 struct 上匹配PYTHON中的内置类型切片?

以下代码不起作用的原因如下:

def __getitem__(self, index):
    match index:
        case int(i):
           ...
        case slice(start, stop, step):
           ...
        case _:
           ...

我完全不明白为什么.

推荐答案

try :

class Example:
    def __getitem__(self, index):
        match index:
            case int(i):
                print('int', i)
            case slice(start=start, stop=stop, step=step):
                print('slice', start, stop, step)
            case _:
                print('default')

e = Example()
e[1]
e[1:2]

打印:

int 1
slice 1 2 None

Python相关问答推荐

这些变量是否相等,因为它们引用相同的实例,尽管它们看起来应该具有不同的值?

带有计数值的Pandas数据帧

如何判断. text文件中的某个字符,然后读取该行

在Python中根据id填写年份系列

是否有方法将现有的X-Y图转换为X-Y-Y1图(以重新填充)?

实现的差异取决于计算出的表达是直接返回还是首先存储在变量中然后返回

计算相同形状的两个张量的SSE损失

返回nxon矩阵的diag元素,而不使用for循环

Polars比较了两个预设-有没有方法在第一次不匹配时立即失败

删除任何仅包含字符(或不包含其他数字值的邮政编码)的观察

用NumPy优化a[i] = a[i-1]*b[i] + c[i]的迭代计算

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

当独立的网络调用不应该互相阻塞时,'

如何在WSL2中更新Python到最新版本(3.12.2)?

cv2.matchTemplate函数匹配失败

根据列值添加时区

在单个对象中解析多个Python数据帧

Pandas GroupBy可以分成两个盒子吗?

使用Python和文件进行模糊输出

人口全部乱序 - Python—Matplotlib—映射