【发布时间】:2021-05-26 00:15:52
【问题描述】:
我正在 3.8.8 中创建一个数据类来存储来自 REST API 调用的结果,它的一个属性用于存储 HTTP 响应状态:
from dataclasses import dataclass
from http import HTTPStatus
@dataclass
class APICallResult:
response_text: str
http_status: HTTPStatus
当我尝试如下创建此类的对象时:
result = APICallResult('foo', HTTPStatus.OK)
PyCharm 2020.3.3 只是将 HTTPStatus.OK 标记为错误:
Expected type 'HTTPStatus', got 'int' instead`.
现在我想知道在这种情况下IntEnum 的正确类型提示是什么?我认为Literal 在这里可能是一个尴尬的选择。
【问题讨论】:
-
这让我觉得是 Pycharm 的分析实现中的一个错误(有几个)。我希望你已经是正确的。
-
@Carcigenicate 啊,我没想到。我尝试使用 mypy,它没有发现我的代码有任何问题。
标签: python enums pycharm python-typing python-dataclasses