@chepner 提到的结果是正确的,Python 在控制台中运行代码可能需要更长的时间,但是一旦编译代码,结果是一样的。
为了确保这是正确的,我创建了以下代码,也受到@knifer 的回答的启发:
from time import time
from numpy import average,std
x = 1
xyzabcdexyzabcdefghidjakeldkjlkfghidjakeldkjlk = 1
short_runs = 0
long_runs = 0
for _ in range(int(2e7)):
t0 = time()
if x:
pass
short_runs += time() - t0
t0 = time()
if xyzabcdexyzabcdefghidjakeldkjlkfghidjakeldkjlk:
pass
long_runs += time() - t0
print('Runtime results:')
print(f"Small variable runs : (sum = {short_runs:.3f})")
print(f"Long variable runs : (sum = {long_runs :.3f})")
我提出的代码有些不同,因为长变量名和短变量名的试验运行是交织在一起的,因此由底层操作系统进程引起的任何差异都被最小化了。
代码的结果会有所不同,具体取决于您copy-paste
是将代码放入 Python 控制台,还是将代码作为程序调用 ( python trial_runs.py
)。使用长变量名称运行copy-paste
往往会更慢,而将代码作为程序调用会产生相同的运行时间。
PS。对我来说,实际运行时间一直在变化(在一个方向或另一个方向上),所以很难报告准确的值。即使是长变量名有时也可以运行得更快,尽管这在 Python 控制台上非常罕见。最大的结论是,无论哪种方式,任何差异都非常小:)