python - 在 Python 3.8 中没有附加类的 TypedDict 的键入键、值
问题描述
我想在 Python 3.8 中使用 Typing 模块。Python 3.8 在 Typing 模块中有一个 TypedDict。我有一个带有这样参数的函数: from Typing import
def groupDataFrame(df: pd.DataFrame, somelist: List[str], somedict: TypedDict[str: Callable]:
pass
但它不允许我像这样指定字典,抛出 TypeError:
TypeError: '_TypedDictMeta' object is not subscriptable
有一个使用附加类的解决方案,但这是一个非常丑陋的解决方案:
知道如何在没有额外课程的情况下做到这一点吗?
解决方案
你不能下标 TypedDict;您打算根据文档实例化或子类化一个:
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 - Pandas -- iterrows for fillna()
- javascript - 验证数组中的第一项或最后一项是否等于某个数字的函数
- javascript - Make correct json data format for select2
- c# - 重置在组框中以编程方式创建的标签的值
- angularjs - How to display ajax loaded image on html in angularjs cli
- tesseract - Improve tesseract quality with dictionary words and/or hyphenated words?
- android - Issues when using Android Room together with Mike Penz Fastadapter
- java - Facing "java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.registerTypeAdapterFactory" while running on hadoop
- matlab - Get a switch case to call on switch case instead of running through all of them
- gtk3 - PyGObject - 当我调用函数时,GtkSpinner 没有旋转 - 为什么?