1
8
正如评论中指出的那样,工会可能是更好的办法。如果签名看起来很凌乱,您可以使用 type aliases
"indefinite length" Tuple type . 您基本上会放弃对元组的确切长度进行编码,但作为交换,可以规范化返回类型并避免这种联合。(如果您的代码 做
然而,一种更激进的方法是考虑重组代码以避免这种情况。 毕竟,如果返回这两种不同的类型,函数的调用方可能需要检查长度,对吗? NamedTuple 或者自定义类,两者都有一个可选字段。然后,您可以将“长度”检查转换为“此字段是否设置为无”检查。 我认为,在某种意义上,命名元组方法也在某种程度上满足了您最初的请求,只要您不介意转换元组/增加的开销。
(一旦“定制类”方法变得更加优雅 PEP 557 被接受并融入语言)。 另一种方法是,如果你提前知道你想要哪种元组,就把你的函数一分为二。然后,您可以调用适当类型的函数。 |