【问题标题】:Mypy: no signature inference?Mypy:没有签名推断?
【发布时间】:2016-08-02 13:25:28
【问题描述】:

看起来 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.py

Mypy 将推断f 正文中的表达式(如果--check-untyped-defs 已打开)。我想知道使用它来做出和应用关于签名的推断是否有意义。 (如果没有,为什么不呢。)

【问题讨论】:

    标签: python type-inference mypy


    【解决方案1】:

    这是一个深思熟虑的设计决定——mypy 旨在允许您将动态代码和类型化代码混合在一起,主要是为了更轻松地转换大型和多样化的代码库 + 允许您有选择地获得两者的好处。

    因此,默认情况下,没有类型注释的函数被视为动态类型函数,并隐含地给定参数和返回类型Any

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多