第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

變量名稱(chēng)的長(zhǎng)度會(huì)影響程序運(yùn)行的速度嗎?

變量名稱(chēng)的長(zhǎng)度會(huì)影響程序運(yùn)行的速度嗎?

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

3 回答

?
陪伴而非守候

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊

不,名稱(chēng)本身對(duì)結(jié)果代碼的運(yùn)行速度沒(méi)有影響。變量名只是用來(lái)區(qū)分 Python 源代碼中由整數(shù)索引表示的兩個(gè)變量在查找表中:


>>> 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

在前兩個(gè)中,您會(huì)注意到在生成的字節(jié)碼中沒(méi)有基于變量名稱(chēng)的區(qū)別。在最后,您將看到字節(jié)碼在兩者之間進(jìn)行區(qū)分,但僅在定義它們的順序上,而不是標(biāo)簽的長(zhǎng)度上。


查看完整回答
反對(duì) 回復(fù) 2021-09-02
?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

差異非常小,我們不能得出結(jié)論,這是因?yàn)樽兞康拿Q(chēng)。


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))

結(jié)果是:


small variable printing =  3.6490847053481588 big variable printing = 3.7199463989460435


查看完整回答
反對(duì) 回復(fù) 2021-09-02
  • 3 回答
  • 0 關(guān)注
  • 403 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)