在 Python 函数中显式定义数据类型

新手上路,请多包涵

我想在 python 函数中定义 2 个变量,并将它们明确定义为 float 。但是,当我尝试在函数参数中定义它们时,它显示语法错误。

请帮助我获得所需的输出。

这是代码:

 def add(float (x) , float (y)) :
    z = (x+y)
    return (print ("The required Sum is: ", z))

add (5, 8)

原文由 Animikh Aich 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 933
2 个回答

Python 是一种强类型的动态语言,它将类型与 相关联,而不是名称。如果你想强制调用者提供特定类型的数据,唯一的方法是在你的函数中添加显式检查。

最近 类型注释 被添加到该语言中。现在您可以编写语法正确的函数规范,包括参数类型和返回值。您的示例的注释版本是

def add(x: float, y: float) -> float:
    return x+y

但是请注意, _这只是语法_。 Python 解释器中的任何内容都不会执行这些操作。有一些外部工具,比如 mypy 可以帮助你实现你的目标,它们现在正在快速成熟,成为语言的一部分(尽管人们希望它们将保持严格可选,记住庞大的语料库存在的无类型代码)。

注释在 pydantic 等工具中的用途比最初预期的要广泛,这些工具使用它们来执行数据验证。这支持有趣的新范例,被(例如) FastAPI 服务器所利用,展示了提高 Web 编码生产力的巨大潜力。

原文由 holdenweb 发布,翻译遵循 CC BY-SA 4.0 许可协议

但是,您可以检查函数中提供的实例是否是您想要的类型!

 def add(x: float, y: float) -> float:
      if not isinstance(x, float):
           raise TypeError("x and y variables not of type float")

同样对于 y var!

原文由 chg.greg 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题