看起来Mypy没有做任何推断签名的事情。对吗?例如:
# types.py
def same_int(x: int) -> int:
return x
def f(x):
y = same_int(x)
# This would be "Unsupported operand types for + ("int" and "str")"
# y + "hi"
return y
f("hi")
f(1) + "hi"当我这样做时,没有抱怨:
mypy --check-untyped-defs types.pyMypy将对f主体中的表达式进行推断(如果打开了--check-untyped-defs )。我想知道用它来做出和应用关于签名的推断是否有意义。(如果不是,为什么不呢?)
发布于 2016-08-05 03:00:32
这是一个经过深思熟虑的设计决策-- mypy被设计成允许您混合使用动态和类型化的代码,主要是为了更容易地转换大型和多样化的代码库,并允许您有选择地获得两者的好处。
因此,默认情况下,不带类型批注的函数被视为动态类型的函数,并被隐式地指定为Any的参数和返回类型。
https://stackoverflow.com/questions/38721750
复制相似问题