我有一个使用不同长度元组类型联合的程序,它动态检查元组的长度来优化类型。在这种动态检查之后,Mypy无法识别变量的类型是否更精确,因此它会报告虚假的类型错误。如何以mypy能够理解的方式动态检查元组长度? 在下面的示例中,即使上一行上的断言确保其类型为Tuple[int, int],当shape用作两个值的元组时,mypy也会报告错误。2:
ass
虽然我知道Python的鸭子类型概念,但有时我会与函数的参数类型或函数返回值的类型进行斗争。
现在,如果我自己编写函数,我确实知道类型。但是,如果有人想使用和调用我的函数,他(她)如何知道类型呢?我通常将类型信息放在函数的docstring中(比如:"...the id argument should be an integer..."我觉得对于“复杂”类型来说,这并不总是很容易
Python 3.1
我正在遵循这样的设计理念,即元组应该具有已知的长度(参见),并且在大多数情况下,未知长度的元组应该替换为列表。我的问题是,在什么情况下,我应该偏离该规则?例如,我知道从字符串和数值型文字创建元组比从列表创建元组更快(参见)。(sumproduct((x, y, z), (a, b, c))被定义为x * a + y * b + z * c,它的参数具有未指定但相等的长度)。当使用def f(*x)时,由Python</em