python3中的静态输入:列表与列表

时间:2018-10-03 14:23:48

标签: python-3.x list static-typing

例如在python3中定义函数的参数时,使用list和List有什么区别?例如

有什么区别
def do_something(vars: list):

def do_something(vars: List):

documentation说:

  

类类型。List(list,MutableSequence [T])

     

列表的通用版本。用于注释返回类型。

但是我不完全确定上面的意思。

我也有类似的问题:dict vs Dict,set vs Set等。

1 个答案:

答案 0 :(得分:3)

从打字角度来看,并非所有列表都是相同的。该程序

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'])

将会失败,