【发布时间】:2020-11-29 20:02:35
【问题描述】:
我有以下示例类,可选str'abc'。
class ABC:
def __init__(self, abc: Optional[str] = None) -> None:
self.a = abc
@property
def a(self) -> str:
return self._a
@a.setter
def a(self, abc: Optional[str]) -> None:
if abc is None:
self._a: str = "ABC"
else:
self._a = abc
'abc' 分配给@property a。 setter 方法测试 'abc' 是否为 None,如果是,则将其替换为默认字符串。所以 getter 的返回值总是来自 str 类型,不再是可选的。但我找不到正确注释它们的方法。我总是得到以下 mypy 错误:
Incompatible types in assignment (expression has type "Optional[str]", variable has type "str")
【问题讨论】:
标签: python annotations type-hinting mypy python-typing