與其他編程語(yǔ)言不同,,Python是一種強(qiáng)類(lèi)型的語(yǔ)言,,所以解釋器運(yùn)行時(shí)候遇到變量以及比較操作、數(shù)據(jù)類(lèi)型轉(zhuǎn)換,、引用變量的時(shí)候都需要檢查其數(shù)據(jù)類(lèi)型,,因此Python程序運(yùn)行速度慢。當(dāng)然,,導(dǎo)致Python程序運(yùn)行慢的原因不只是這么簡(jiǎn)單,,也許我們的某個(gè)壞習(xí)慣也會(huì)讓Python程序變慢,快來(lái)看看吧,。 1,、不要導(dǎo)入根模塊 在使用Python時(shí),我們無(wú)法避免的一件事情是導(dǎo)入模塊,,無(wú)論是內(nèi)置模塊還是第三方模塊,。有時(shí),我們可能只需要該模塊中的一個(gè)或幾個(gè)函數(shù)或?qū)ο?。在這種情況下,,我們應(yīng)該嘗試只導(dǎo)入我們需要的函數(shù)或?qū)ο螅皇菍?dǎo)入根模塊,。 2,、避免使用點(diǎn)/點(diǎn)鏈 使用dot非常直觀。在Python中訪(fǎng)問(wèn)對(duì)象的屬性或函數(shù),。大多數(shù)時(shí)候,,沒(méi)有問(wèn)題。但是,,如果我們可以避免使用點(diǎn)甚至鏈接點(diǎn),,性能實(shí)際上會(huì)更好。 3、不要使用+連接字符串 字符串在Python中是不可變的,。因此,,當(dāng)我們使用“+”將多個(gè)字符串連接成一個(gè)長(zhǎng)字符串時(shí),每個(gè)子字符串都是單獨(dú)操作的,。 4,、不要使用臨時(shí)變量進(jìn)行價(jià)值交換 許多算法需要兩個(gè)變量的值交換。在大多數(shù)其他編程語(yǔ)言中,,這通常是通過(guò)引入一個(gè)臨時(shí)變量來(lái)完成的,。 5、使用If-Condition短路 短路評(píng)估存在于許多編程語(yǔ)言中,,Python也是如此,。基本上,,它指的是某些布爾運(yùn)算符的行為,,其中僅當(dāng)?shù)谝粋€(gè)參數(shù)不足以確定整個(gè)表達(dá)式的值時(shí)才執(zhí)行或評(píng)估第二個(gè)參數(shù)。 6,、如果可以使用For循環(huán)就不要使用while循環(huán) Python使用了很多C來(lái)提高性能,即CPython,。在循環(huán)語(yǔ)句方面,,Python中的For-Loop具有相對(duì)較少的步驟,其中更多的步驟作為C代碼運(yùn)行,,而不是while-Loop,。 因此,當(dāng)我們可以在Python中使用For-Loop時(shí),,我們不應(yīng)該使用while循環(huán),。這不僅是因?yàn)镕or-Loop在Python中更優(yōu)雅,而且性能更好,。 |
|
來(lái)自: 老男孩IT教育 > 《Python培訓(xùn)》