Python函数注释和类型提示(PEP 3107和PEP 484)会导致一些运行时效果吗?
它能使代码更快吗?还是缩小内存的使用量?否则会使代码更慢?
类型提示和注释确实提供typing.get_type_hints
了可以由第三方工具传递的属性(请参阅),但是本机CPython不会在运行时键入检查这些属性,因此这不会以与注释相同的方式显着影响代码性能.我运行了一些测试,timeit
并且在运行时删除类型提示的效果可忽略不计(与背景噪声无法区分),因此对性能的任何担忧肯定会是过早优化的严重情况.
从PEP 484:
虽然建议的输入模块将包含一些用于运行时类型检查的构建块 - 特别是get_type_hints()函数 - 但必须开发第三方软件包以实现特定的运行时类型检查功能,例如使用装饰器或元类.使用类型提示进行性能优化仍然是读者的练习.