子类化str时如何声明附加属性?



考虑以下类:

class StrWithInt(str):
def __new__(cls, content, value: int):
ret = super().__new__(cls, content)
ret.value = value
return ret

这个类工作得很好,但是当使用mypy时,会发生以下错误:"StrWithInt" has no attribute "value" [attr-defined]

在这种情况下是否有一些方法显式地声明属性?解决这个问题的正确方法是什么?

注意,这是一个最小的例子,在非最小的例子中不使用str的子类是不可能的。

class StrWithInt(str):
value: int
def __new__(cls, content, value: int):
ret = super().__new__(cls, content)
ret.value = value
return ret

相关内容

  • 没有找到相关文章

最新更新