成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

三個提升Python運行速度的方法,都很實用!

開發 后端
今天總結三個提升Python運行速度的方法,只從代碼本身考慮,提升運行速度并不會從編寫C 擴展的代碼、基于JIT的編譯器技術考慮。

今天總結三個提升Python運行速度的方法,只從代碼本身考慮,提升運行速度并不會從編寫C 擴展的代碼、基于JIT的編譯器技術考慮。

關于代碼執行效率的第一個方法是減少頻繁的方法訪問,尤其是在多層循環內層、且循環次數較多的操作,差距尤為明顯。

  1. # 真是模塊內全局變量 
  2. import math 
  3.  
  4. def compute_sqrt(nums): 
  5.     result = [] 
  6.     for n in nums: # 假如nums長度很大 
  7.     # 1. math.sqrt 會被頻繁訪問 
  8.     # 2. result.append 也會被頻繁訪問 
  9.         result.append(math.sqrt(n)) 
  10.     return result 

看到在for循環里面,涉及2個頻繁的訪問:

  • math.sqrt 會被頻繁訪問
  • result.append 也會被頻繁訪問

因此第一步做如下更改:直接導入sqrt,而不是導入整個模塊后再去引用sqrt

  1. # 直接導入sqrt,而不是導入整個模塊后再去引用sqrt 
  2. from math import sqrt 
  3.  
  4. def compute_sqrt(nums): 
  5.     result = [] 
  6.     for n in nums: # 假如nums長度很大 
  7.     # 1. math.sqrt 會被頻繁訪問 
  8.     # 2. result.append 也會被頻繁訪問 
  9.         result.append(sqrt(n)) 
  10.     return result 

然后再修改result.append,不用頻繁訪問append,使用標簽apd指向它就行了:

  1. # 直接導入sqrt,而不是導入整個模塊后再去引用sqrt 
  2. from math import sqrt 
  3.      
  4. def compute_sqrt(nums): 
  5.     result = [] 
  6.     apd = result.append 
  7.     for n in nums: # 假如nums長度很大 
  8.     # 1. math.sqrt 會被頻繁訪問 
  9.     # 2. result.append 也會被頻繁訪問 
  10.         apd(sqrt(n)) 
  11.     return result 

第二個方法:查找局部變量的效率是最高的!!!對于頻繁訪問的變量應盡可能是局部變量,消除不必要的全局變量訪問。所以對于上面代碼,sqrt還是模塊級別的全局變量,所以修改為:

  1. def compute_sqrt(nums): 
  2.     # 調整sqrt為局部變量 
  3.     from math import sqrt 
  4.     result = [] 
  5.     apd = result.append 
  6.     for n in nums: # 假如nums長度很大 
  7.     # 1. math.sqrt 會被頻繁訪問 
  8.     # 2. result.append 也會被頻繁訪問 
  9.         apd(sqrt(n)) 
  10.     return result 

第三個方法:不要做一些不必要的屬性包裝。比如@property必要時再用,能不用時就別用。如下對于屬性y做@property裝飾沒有任何意義!只有在y有特定取值,比如只能取大于0的非負實數時再用此裝飾才有意義。

  1. class A: 
  2.     def __init__(self, x, y): 
  3.         self.x = x 
  4.         self.y = y 
  5.     @property 
  6.     def y(self): 
  7.         return self._y 
  8.     @y.setter  
  9.     def y(self, value): 
  10.         self._y = value 

因此修改為下面這樣,刪去多余的@property包裝

  1. class A: 
  2.     def __init__(self, x, y): 
  3.         self.x = x 
  4.         self.y = y 

以上就是Python代碼提速的3條基本但卻容易被忽略的有價值方法,希望對你有用。

 

責任編輯:趙寧寧 來源: 程序員zhenguo
相關推薦

2009-06-18 12:21:07

javascriptdom

2024-12-17 09:44:55

2011-01-12 11:22:24

微軟認證

2018-08-02 16:17:34

Python 開發編程語言

2013-07-08 11:16:05

Windows 7

2022-02-23 10:54:37

電腦卡頓硬件

2018-03-09 10:15:00

Linux應用程序運行速度

2010-03-15 16:34:50

Python字典

2022-05-12 12:55:28

容器Kubernetes運行容器

2020-12-15 06:44:14

程序運行速度

2023-06-26 08:06:39

重構代碼冗余

2010-08-24 09:10:14

Linux命令行工具

2009-08-11 09:10:26

Windows 7系統提速

2010-04-12 10:01:43

Windows 7運行速度

2024-09-27 08:35:33

數組JavaScript性能

2016-02-22 09:27:18

2016-02-15 09:25:00

R語言運算效率大數據

2024-11-01 07:30:00

2009-06-26 10:10:00

Hibernate狀態

2022-03-08 23:13:27

云計算Kubernetes云效率
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黑人巨大精品欧美一区二区免费 | 国产精品美女久久久久aⅴ国产馆 | 亚洲色综合 | 亚洲天天干 | 在线观看黄色电影 | 久久久国产一区 | 国产欧美一区二区久久性色99 | 免费观看av| 久久毛片 | 国产色片在线 | 欧美在线观看一区 | 亚洲美女av网站 | 爱操影视| 神马影院一区二区三区 | 免费成年网站 | 亚洲欧美视频一区 | 久久在线视频 | 中文字幕一页二页 | 午夜精品久久久久久久久久久久久 | 欧美亚洲视频 | 亚洲成人综合社区 | 国产在线观看一区 | 不卡一区二区三区四区 | 91精品国产乱码久久久久久久 | 久久国产精品久久久久久久久久 | 香蕉大人久久国产成人av | 欧美日韩久久久久 | 亚洲午夜视频 | 国产精品av久久久久久久久久 | 欧美天堂 | 久久久久一区 | 欧美亚洲国产一区 | 蜜桃av鲁一鲁一鲁一鲁 | 国产高清一区二区三区 | 国产精品不卡视频 | 色婷婷精品 | 成人一区二区三区 | 青青草原综合久久大伊人精品 | 成人久草| 龙珠z在线观看 | 成人激情视频在线播放 |