我刚刚看到亚历克斯·马泰利今晚展示了这一点。我没有听懂他解释为什么这里的速度差异如此之大,我仍然很好奇:
% python -mtimeit -s'def f(): pass' 'f()'
10000000 loops, best of 3: 0.121 usec per loop
% python -mtimeit -s'def f(): pass' 'f'
10000000 loops, best of 3: 0.0265 usec per loop
那么为什么f
跑得这么快f()
呢?诚然,这个例子有点做作,因为我不知道它是否可以推广到所有可能的不带参数的函数。这里的引擎盖下发生了什么?