Python函数注释和类型提示(PEP 3107和PEP 484)会导致一些运行时效果吗?
它能使代码更快吗?还是缩小内存的使用量?否则会使代码更慢?
答案 0 :(得分:8)
类型提示和注释确实提供了可以由第三方工具传递的属性(请参阅typing.get_type_hints
),但本机CPython不会在运行时键入检查这些属性,因此这不会以相同的方式显着影响代码性能那些评论不是。我使用timeit
运行了一些测试,并且在运行时删除类型提示的效果可忽略不计(与背景 noise 无法区分),因此对性能的任何担忧肯定会是一个严重的情况。过早优化。
来自PEP 484:
虽然建议的输入模块将包含一些构建块 运行时类型检查 - 特别是get_type_hints()函数 - 必须开发第三方软件包以实现特定的运行时类型检查功能,例如使用 装饰者或元类。使用类型提示来提高性能 优化是留给读者的练习。
答案 1 :(得分:2)
根据non-goals in the PEP 484 documentation,类型检查和性能优化依赖于第三方工具或留给程序员。
简而言之:不,它们不会造成任何运行时效果,除非你明确地使用它们。