3 回答

TA贡献1757条经验 获得超8个赞
不,名称本身对结果代码的运行速度没有影响。变量名只是用来区分 Python 源代码中由整数索引表示的两个变量在查找表中:
>>> dis.dis('x=1')
1 0 LOAD_CONST 0 (1)
2 STORE_NAME 0 (x)
4 LOAD_CONST 1 (None)
6 RETURN_VALUE
>>> dis.dis('xyz=1')
1 0 LOAD_CONST 0 (1)
2 STORE_NAME 0 (xyz)
4 LOAD_CONST 1 (None)
6 RETURN_VALUE
>>> dis.dis('x=1;xyz=2;')
1 0 LOAD_CONST 0 (1)
2 STORE_NAME 0 (x)
4 LOAD_CONST 1 (2)
6 STORE_NAME 1 (xyz)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE
在前两个中,您会注意到在生成的字节码中没有基于变量名称的区别。在最后,您将看到字节码在两者之间进行区分,但仅在定义它们的顺序上,而不是标签的长度上。

TA贡献1821条经验 获得超4个赞
差异非常小,我们不能得出结论,这是因为变量的名称。
import timeit
x=1
xyz=1
start_time = timeit.default_timer()
for i in range(1,1000000):
if x==1:
print("message")
elapsed = timeit.default_timer() - start_time
start_time2 = timeit.default_timer()
for i in range(1,1000000):
if xyz==1:
print("message")
elapsed2 = timeit.default_timer() - start_time2
print("small variable printing = ",str(elapsed),"big variable printing = "+str(elapsed2))
结果是:
small variable printing = 3.6490847053481588 big variable printing = 3.7199463989460435
添加回答
举报