【发布时间】:2020-11-09 06:58:05
【问题描述】:
我有一个函数,它的参数是一个字典列表。我正在尝试在函数参数中指定字典的元素类型。字典格式如下:
{'my_object':my_object, 'data':int}
my_object 是自定义数据类型。有没有办法指定字典的类型,如下所示:
def my_function(x : list[dict[my_object, int]]):
Python 抱怨我如何定义类型并给我以下错误:
TypeError: 'type' object is not subscriptable
【问题讨论】:
-
typing.TypedDict可能是您想要的? -
TypeError消息为真:list和dict类不可下标。从typing导入它们后,您需要使用List和Dict。但是,两者都不是您想要的。正如@IainShelvington 指出的那样,您可能想要typing.TypedDict(Python 3.8 中的新功能)。我不认为你可以在 Py3.7 中准确地说明参数x的类型——对于具有异构值(或键)的字典没有类型。 -
@AFPP 你有没有得到很好的解决方案?
-
您对
dict的使用假设所有键都是字符串,并且您只是列出了 value 类型,但您不是指示哪些键映射到哪些类型。位置顺序不合适:您的用例是否真的认为{'data': int, "my_object": my_object}具有不同的不正确类型?
标签: python dictionary types arguments