python - python3 : list vs List中的静态类型

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

这个问题在这里已经有了答案:





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/

相关文章:

python - 为什么 numpy 计算不受全局解释器锁的影响?

python - tkinter陷印框架入口(后续)

Python 3迭代json返回对象

python-3.x - 如何使用套接字连接到 FTP 服务器?

python - 给定一个单词列表,用它们创建短语的子集

python - 如何将键值元组列表转换为字典?

python - 如何使用 psycopg2 查询 postgres-db View ?

python - 如何在Python中获取数组中所有NaN元素的索引?

python:友好数字检查

Python类抛出: can't convert 'list' object to str implicitl