`Dict[str, Any]`在Python中是什么意思?

问题描述 投票:0回答:1

我指的是可用的文档 此处 以了解在使用函数注解时如何定义返回类型。

我不明白在 Dict[str, Any] 指的是。是否 str 指的是字典的键和 Any (意思是,可以是字符串或int)指的是字典的值的类型?EDIT:在上面提到的链接中,提到了

PEP 484类型的Dict[str,Any]是合适的,但它太宽松了,因为可以使用任意的字符串键,任意的值也是有效的。

谁能解释一下什么是 arbitrary string keys 指的是什么?我知道键是字符串,但当我们说到 arbitrary string keys 我们只是说字典可以接受任何字符串的键吗?还是说 arbitrary 在这里有什么其他意义吗?

python-3.x function annotations
1个回答
1
投票

是的! 通常python的变量是可以突变的(类型可以改变),但这样指定是很好的文档,可以很清楚地知道什么在哪里。

更多使用文档可以在这里找到 https:/docs.python.org3librarytyping.html

EDIT:详细说明对最新问题的答复。

PEP 您所参考的文档确定了类型提示,尽管很有用,但仍然很容易出错。

通过指定 Dict[str, Any]జజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజ str 可以是"arbitrary",这意味着它可以是任何字符串键(即,。name, age, height, humidity). 在这些键中,我们可以考虑"humidity"不应该是这个字符串的关键之一 dict但没有办法检查或强制执行,直到后来发生一些错误(因此,它是 "任意的";没有规则来管理什么是 "允许的 "字符串键的 dict).

因此,根据文档,指定该类(从 TypedDict):

class Movie(TypedDict):
    name: str
    year: int

将特别限制用户创建一种新的。dict (a TypedDict)与字符串键 nameyear (各自的数值打在 strint). 用户将不能 "任意 "添加一个新的密钥(即. humidity)到这个"Movie" TypedDict或以其他方式分配一个非int 值为 Movie["year"].

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.