如何解决Python 3.8中的list和List之间有什么区别
对于类型注释,在Python 3.8
版或更早的版本中,明确要求将List
导入为有效类型。因此,我们必须做类似from typing import List
的事情。
为什么我们必须创建新的List
类型而不在list
之前的版本中使用内置的Python 3.9
类型?
解决方法
list
是内置的list
类。您可以直接对此进行注释。
typing.List
是列表的类型提示,可以下标,例如:
foo: List[str] = []
与list
相比,它可以提供更细粒度的类型提示,因为您可以注释列表中期望的类型。
Since Python 3.9内置的list
还支持以前没有的订阅。
typing.List不是list
-它是泛型。您可以在键入中使用list
,但可以使用List
来更具体。例如。
from typing import List
def unspecific_func(arg: list):
return ','.join(arg)
def specific_func(arg: List[str]):
return ','.join(arg)
如果您尝试执行unspecific_func([1,3,5])
,则类型提示不足以告诉您这是一个错误。但是,将List[str]
作为类型提示不仅意味着它应该是一个列表,而且该列表的成员都应该是字符串!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。