我想使用 Python 3.8 中的 Typing 模块。 Python 3.8 在 Typing 模块中提供了 TypedDict。 我有一个带有这样的参数的函数: 从打字导入
def groupDataFrame(df: pd.DataFrame, somelist: List[str], somedict: TypedDict[str: Callable]:
pass
但它不允许我像这样指定字典,抛出 TypeError:
TypeError:“_TypedDictMeta”对象不可订阅
有一个解决方案利用额外的类,但这是一个相当丑陋的解决方案:
How to get key type from pythons TypedDict
知道如何在没有额外类(class)的情况下做到这一点吗?
最佳答案
你不能为 TypedDict 添加下标;你打算实例化或子类化 according to the docs :
Point2D = TypedDict('Point2D', x=int, y=int, label=str)
Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str})
考虑到这一点,您可以将其内联到签名中:
def x(a: TypedDict('A', x=int)):
pass
关于python - 在 Python 3.8 中键入 TypedDict 的键、值,无需附加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63050806/