python3 中的静态类型:列表与列表
Static typing in python3: list vs List
在 python3 中定义函数的参数时,使用 list 和 List 有什么区别?例如
有什么区别
def do_something(vars: list):
和
def do_something(vars: List):
class typing.List(list, MutableSequence[T])
Generic version of list. Useful for annotating return types.
但我不完全确定上面的意思。
我有类似的问题:dict 与 Dict、set 与 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'])
会失败,这是应该的。
在 python3 中定义函数的参数时,使用 list 和 List 有什么区别?例如
有什么区别def do_something(vars: list):
和
def do_something(vars: List):
class typing.List(list, MutableSequence[T])
Generic version of list. Useful for annotating return types.
但我不完全确定上面的意思。
我有类似的问题:dict 与 Dict、set 与 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'])
会失败,这是应该的。