我有一些 Python 3.7 代码,我正在尝试向其中添加类型。我要添加的一种类型实际上是Union
几个可能的字符串之一:
from typing import Union, Optional, Dict
PossibleKey = Union["fruits", "cars", "vegetables"]
PossibleType = Dict[PossibleKey, str]
def some_function(target: Optional[PossibleType] = None):
if target:
all_fruits = target["fruits"]
print(f"I have {all_fruits}")
这里的问题是 Pyright 抱怨PossibleKey
. 它说:
“水果没有定义”
我想让 Pyright/Pylance 工作。
我已经from enum import Enum
从另一个 SO 答案中检查了模块,但是如果我尝试这样做,我最终会遇到更多问题,因为我实际上是在处理 aDict[str, Any]
而不是Enum
.
表示我的类型的正确 Pythonic 方式是什么?