考虑以下类:
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