这个问题在这里已经有了答案:
Using List/Tuple/etc. from typing vs directly referring type as list/tuple/etc
(2 个回答)
19 天前关闭。
例如在python3中定义函数的参数时,使用list和List有什么区别?例如,有什么区别
def do_something(vars: list):
和
def do_something(vars: List):
documentation说:
class typing.List(list, MutableSequence[T])
Generic version of list. Useful for annotating return types.
但我不完全确定以上是什么意思。
我有类似的问题:dict vs dict、set vs set等。
最佳答案
从打字的角度来看,并非所有列表都相同。该程序
def f(some_list: list):
return [i+2 for i in some_list]
f(['a', 'b', 'c'])
不会使静态类型检查器失败,即使它不会运行。相比之下,您可以使用来自 typing
的抽象类型来指定列表的内容。def f(some_list: List[int]) -> List[int]:
return [i+2 for i in some_list]
f(['a', 'b', 'c'])
会失败,因为它应该。
关于python - python3 : list vs List中的静态类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52629265/