亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

變量名稱的長度會影響程序運行的速度嗎?

變量名稱的長度會影響程序運行的速度嗎?

UYOU 2021-09-02 14:57:28
我有一小段代碼需要長時間運行。我想知道我使用的變量名稱的長度是否可以改變程序執行的速度。這是一個用 Python 編寫的非常簡單的示例。程序A    x = 1    while not x == 0:          print('message')程序B    xyz = 1    while not xyz == 0:          print('message')如果我在兩臺相同的機器上運行程序 A 和程序 B 30 年,程序 A 會比程序 B 打印更多次“消息”。
查看完整描述

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

在前兩個中,您會注意到在生成的字節碼中沒有基于變量名稱的區別。在最后,您將看到字節碼在兩者之間進行區分,但僅在定義它們的順序上,而不是標簽的長度上。


查看完整回答
反對 回復 2021-09-02
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

差異非常小,我們不能得出結論,這是因為變量的名稱。


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


查看完整回答
反對 回復 2021-09-02
  • 3 回答
  • 0 關注
  • 401 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號