当前位置:  开发笔记 > 编程语言 > 正文

类型提示音调适合函数参数但不适合返回类型

如何解决《类型提示音调适合函数参数但不适合返回类型》经验,为你挑选了1个好方法。

我是Python的新手,很高兴发现Python3中的类型提示功能.我通过PEP 484阅读并在SO上发现了这个问题,其中提出问题的人想知道为什么没有检查函数的返回类型.受访者指出PEP 484中的一个部分表示检查不会在运行时发生,并且意图是类型提示将由外部程序解析.

我启动了python3 REPL并决定尝试这个

>>> def greeting() -> str: return 1
>>> greeting()
1

到现在为止还挺好.我对函数参数感到好奇,所以我尝试了这个:

>>> def greeting2(name: str) -> str: return 'hi ' + name
>>> greeting2(2)
Traceback (most recent call last):
  File "", line 1, in 
  File "", line 1, in greeting2
TypeError: Can't convert 'int' object to str implicitly

现在这是轮子似乎脱落的地方,因为看起来,至少在功能参数方面,有检查.我的问题是为什么检查参数而不是返回类型?



1> Simeon Visse..:

Python在运行时不使用类型提示(不是函数参数也不是返回类型).它与以下内容没有什么不同:

>>> def greeting3(name): return 'hi ' + name
...
>>> greeting3(2)
Traceback (most recent call last):
  File "", line 1, in 
  File "", line 1, in greeting3
TypeError: Can't convert 'int' object to str implicitly

你得到的是TypeError,因为你试图连接一个字符串和一个整数:

>>> 'hi ' + 2
Traceback (most recent call last):
  File "", line 1, in 
TypeError: Can't convert 'int' object to str implicitly

如上所述,类型提示不会在运行时检查,它们旨在由编辑器/工具在开发期间使用.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有