gpt4 book ai didi

python - mypy: "__getitem__"的签名与父类(super class)型 "Sequence"不兼容

转载 作者:太空狗 更新时间:2023-10-30 01:19:24 24 4
gpt4 key购买 nike

我有一个继承自 MutableSequence 的类,如下所示:

class QqTag(MutableSequence):
def __init__(self):
self._children = []
def __getitem__(self, idx: int) -> 'QqTag':
return self._children[idx]

mypy 提示 Signature of "__getitem__"incompatible with supertype "Sequence"

Sequence中,这个方法定义为:

@abstractmethod
def __getitem__(self, index):
raise IndexError

那么,问题是什么?为什么 mypy 对我的实现不满意?

最佳答案

评论中提到,也可以传递一个typeof切片。即,将 idx: int 更改为 idx: Union[int, slice]

这会让 mypy 开心(至少在我的机器上是这样;):

class QqTag(MutableSequence):
def __init__(self):
self._children = []

def __getitem__(self, idx: Union[int, slice]) -> 'QqTag':
return self._children[idx]

关于python - mypy: "__getitem__"的签名与父类(super class)型 "Sequence"不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46685165/

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