首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python函数中的类型规范

Python函数中的类型规范
EN

Stack Overflow用户
提问于 2019-04-13 12:34:03
回答 1查看 3.2K关注 0票数 4

我相信可以在Python中指定类型,如这里所提到的:https://docs.python.org/3/library/typing.html

我使用的是以下简单的函数,从上面的一个修改:

代码语言:javascript
复制
def greeting(name: str) -> str:
    print("From inside function.")
    return 'Hello ' + name

正如预期的那样,当一个字符串作为参数被发送时,它可以工作。但是,当使用整数作为参数时,它仍然会到达函数内部,并且在return语句级别引发错误:

代码语言:javascript
复制
> print(greeting(55))
From inside function.
Traceback (most recent call last):
  File "testing.py", line 16, in <module>
    print(greeting(55))
  File "testing.py", line 13, in greeting
    return 'Hello ' + name
TypeError: Can't convert 'int' object to str implicitly

如果函数定义没有类型规范,则会发生相同的错误:

代码语言:javascript
复制
def greeting(name):

那么在函数头中有类型规范的优点是什么?

代码语言:javascript
复制
def greeting(name: str) -> str:
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-13 12:37:26

Python是动态类型的;在运行时,name可以是任何值。函数注释只提供类型提示,Python本身忽略了这些提示,但其他工具可以用于静态类型检查。也就是说,在运行时,greeting(4)是完全合法的(但是当您试图计算'Hello' + 4时会导致运行时错误)。然而,像形象化这样的工具将greeting(4)标记为错误,因为4确实不是您所说的name应该使用的str

将类型提示看作是可解析的和机器可检查的注释。

关于类型提示的doc.python

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55665488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档