您总是返回 一个 对象;使用
return one, two只需返回一个元组。
是的,
-> Tuple[bool, str]完全正确。
只有 该
Tuple类型可以指定一个 固定数量 的元素,每一个不同的类型。如果您的函数产生 固定
数量的返回值,尤其是当这些值是特定的,不同的类型时,确实应该总是返回一个元组。
期望其他序列类型具有可变数量元素的 _一种_类型规范,因此
typing.Sequence此处不适用。另请参阅列表和元组之间有什么区别?
元组是异构数据结构(即,它们的条目具有不同的含义),而列表是同类序列。 元组具有结构,列表具有顺序。
Python的类型提示系统遵循这种哲学,目前尚无语法来指定固定长度的可迭代对象,并在特定位置包含特定类型。
如果 必须 指定任何可迭代的对象,那么最好的方法是:
-> Iterable[Union[bool, str]]
在这一点上,调用者可以期望布尔值和字符串 以任意顺序 ,并且长度未知(0到无穷大之间)。