来自打字库的字典

Dict from typing library

我见过有人用

def testing(cha: List[Dict]) -> List[List[Dict]])

我想知道这个函数是做什么用的,“->”是做什么用的? 我知道它采用字典列表中值为 "cha" 的字典,并将其转换为字典列表。

我上面的理解正确吗?如果没有,有人可以给我看一些简单的例子吗?

那是Python的类型提示。它只是语法糖,可以帮助阅读您的代码的开发人员了解您的函数期望的输入类型以及它应该输出的类型 return。 ->左边的类型表示输入类型,->右边的类型表示return类型。在您的示例中,

def testing(cha: List[Dict]) -> List[List[Dict]]:
    ...

testing 是一个函数,它应该接受一个名为 cha 的列表,其中包含字典和 return 一个包含列表的列表,列表又包含字典。像这样,

>>> testing([{'a':12, 'b':34}])
>> [[{'a':12, 'b':34}], [{'a':24, 'b':68}]]

话虽这么说,Python 仍然是一种动态类型的语言,并且类型提示不会向您的代码添加任何编译器优化。所有类型检查仍然发生在运行时。没有什么可以阻止您违反函数的类型提示,这意味着我可以将任何类型的参数传递给 testing,它仍然会尝试将其用作有效输入。