Python类型提示(注释)是否会导致一些运行时效果?

时间:2017-01-17 08:42:20

标签: python annotations type-hinting

Python函数注释和类型提示(PEP 3107和PEP 484)会导致一些运行时效果吗?

它能使代码更快吗?还是缩小内存的使用量?否则会使代码更慢?

2 个答案:

答案 0 :(得分:8)

类型提示和注释确实提供了可以由第三方工具传递的属性(请参阅typing.get_type_hints),但本机CPython不会在运行时键入检查这些属性,因此这不会以相同的方式显着影响代码性能那些评论不是。我使用timeit运行了一些测试,并且在运行时删除类型提示的效果可忽略不计(与背景 noise 无法区分),因此对性能的任何担忧肯定会是一个严重的情况。过早优化。

来自PEP 484

  

虽然建议的输入模块将包含一些构建块   运行时类型检查 - 特别是get_type_hints()函数    - 必须开发第三方软件包以实现特定的运行时类型检查功能,例如使用   装饰者或元类。使用类型提示来提高性能   优化是留给读者的练习。

答案 1 :(得分:2)

根据non-goals in the PEP 484 documentation,类型检查和性能优化依赖于第三方工具或留给程序员。

简而言之:不,它们不会造成任何运行时效果,除非你明确地使用它们。