2024-04-25 08:32:55 发布
网友
从typing模块使用List、Tuple等有什么区别:
typing
List
Tuple
from typing import Tuple def f(points: Tuple): return map(do_stuff, points)
与直接引用Python的类型相反:
def f(points: tuple): return map(do_stuff, points)
我什么时候该用一个代替另一个呢?
typing.Tuple和typing.List是Generic types;这意味着您可以指定它们的内容必须是什么类型:
typing.Tuple
typing.List
def f(points: Tuple[float, float]): return map(do_stuff, points)
这指定传入的元组必须包含两个float值。你不能用内置的tuple类型来实现这一点。
float
tuple
^{}在这里是特殊的,因为它允许您指定所需的特定数量的元素和每个位置的类型。如果长度未设置且类型应重复,请使用省略号:Tuple[float, ...]使用floats描述可变长度tuple
Tuple[float, ...]
对于^{}和其他序列类型,通常只为所有元素指定类型;List[str]是任意大小的字符串列表。注意,函数应该优先使用^{}作为参数,而typing.List通常只用于返回类型;一般来说,大多数函数都采用任何序列,并且只进行迭代,但是当返回list时,实际上返回的是一个特定的、可变的序列类型。
List[str]
list
即使当前不限制内容,也应该始终选择typing泛型。稍后使用泛型类型添加该约束更容易,因为结果更改将更小。
typing.Tuple
和typing.List
是Generic types;这意味着您可以指定它们的内容必须是什么类型:这指定传入的元组必须包含两个
float
值。你不能用内置的tuple
类型来实现这一点。^{} 在这里是特殊的,因为它允许您指定所需的特定数量的元素和每个位置的类型。如果长度未设置且类型应重复,请使用省略号:
Tuple[float, ...]
使用float
s描述可变长度tuple
对于^{} 和其他序列类型,通常只为所有元素指定类型;} 作为参数,而
List[str]
是任意大小的字符串列表。注意,函数应该优先使用^{typing.List
通常只用于返回类型;一般来说,大多数函数都采用任何序列,并且只进行迭代,但是当返回list
时,实际上返回的是一个特定的、可变的序列类型。即使当前不限制内容,也应该始终选择
typing
泛型。稍后使用泛型类型添加该约束更容易,因为结果更改将更小。相关问题 更多 >
编程相关推荐