python - 枚举 auto() 值上的 Mypy 错误
问题描述
我有这个用于自动命名枚举的类。
class AutoNameEnum(Enum):
def _generate_next_value_(name, start, count, last_values):
return name
这直接取自enums 上的 Python 文档。
用法是这样的
class Priority(AutoNameEnum):
LOW = auto()
HIGH = auto()
priority = Priority.LOW
这一切都很好,mypy 了解这里的一切。但是当我尝试放入AutoNameEnum
一个单独的包时,我得到了一个错误。具体来说,这
from utilities import AutoNameEnum
class Priority(AutoNameEnum):
LOW = auto()
HIGH = auto()
priority = Priority.LOW
结果是
参数“priority”的默认不兼容(默认类型为“auto”,参数类型为“Priority”)
这个 mypy 错误是什么意思,为什么它只在我从不同的包中导入类时发生?
解决方案
auto
这实际上与or无关Enum
。py.typed
我只需要通过添加一个名为包根的文件来表明我的包是键入的。没有它,mypy 不会扫描包的类型。
推荐阅读
- gimp - 更改文本图层的对比度可用作预览,但在确认后无效
- apache-kafka - (功能性)Spring Cloud Stream 自定义分区键实现,用于将消息列表发布到单个 Kafka 主题
- mpeg-dash - dash.js 无法一个接一个地播放多个视频
- c# - C# 表单使用 [i] 引用图像
- c - 如何更好地实现诸如等待控制我创建的进程运行顺序的功能?
- rust - 确定两个路径是否在同一个文件系统上
- c# - Unity LineRenderer Gradient 不适用于自定义颜色
- eloquent - 从 2 个深度多对多关系中获取一个集合结果
- python - 如果选择!=“y”或选择!=“是”,布尔“或”运算符不会返回正确的结果:
- asp.net-core - 无法在 POST 调用中接收来自 Route 和 Body 的值