我指的是可用的文档 此处 以了解在使用函数注解时如何定义返回类型。
我不明白在 Dict[str, Any]
指的是。是否 str
指的是字典的键和 Any
(意思是,可以是字符串或int)指的是字典的值的类型?EDIT:在上面提到的链接中,提到了
PEP 484类型的Dict[str,Any]是合适的,但它太宽松了,因为可以使用任意的字符串键,任意的值也是有效的。
谁能解释一下什么是 arbitrary string keys
指的是什么?我知道键是字符串,但当我们说到 arbitrary string keys
我们只是说字典可以接受任何字符串的键吗?还是说 arbitrary
在这里有什么其他意义吗?
是的! 通常python的变量是可以突变的(类型可以改变),但这样指定是很好的文档,可以很清楚地知道什么在哪里。
更多使用文档可以在这里找到 https:/docs.python.org3librarytyping.html
该 PEP 您所参考的文档确定了类型提示,尽管很有用,但仍然很容易出错。
通过指定 Dict[str, Any]
జజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజ str
可以是"arbitrary
",这意味着它可以是任何字符串键(即,。name
, age
, height
, humidity
). 在这些键中,我们可以考虑"humidity
"不应该是这个字符串的关键之一 dict
但没有办法检查或强制执行,直到后来发生一些错误(因此,它是 "任意的";没有规则来管理什么是 "允许的 "字符串键的 dict
).
因此,根据文档,指定该类(从 TypedDict
):
class Movie(TypedDict): name: str year: int
将特别限制用户创建一种新的。dict
(a TypedDict
)与字符串键 name
和 year
(各自的数值打在 str
和 int
). 用户将不能 "任意 "添加一个新的密钥(即. humidity
)到这个"Movie
" TypedDict
或以其他方式分配一个非int
值为 Movie["year"]
.