Skip to main content
 首页 » 编程设计

Python:使用相同的参数多次调用同一个函数,还是将结果保存为中间值

2025年05月04日18txw1958

如果我有一个函数

def bar(n): 
    return n**100 

之间会有性能差异吗?
for i in range(1000000): 
    x = bar(30) 
    # use x for something 

和

x = bar(30) 
# use x for something 1,000,000 times 

不知道解释器有没有针对这种情况优化过?

请您参考如下方法:

CPython 编译器只做很少的简单 peephole optimisations ,但它肯定永远不会优化函数调用——它怎么知道函数是否有副作用呢?在编译时,它通常甚至不知道名称 bar 指的是哪个函数,并且名称绑定(bind)可能随时更改。

如有疑问,只需自己测量性能 -- timeit模块是你的 friend 。