成人免费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

2011-01-12 11:22:24

微軟認證

2024-12-17 09:44:55

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

2020-12-15 06:44:14

程序運行速度

2022-05-12 12:55:28

容器Kubernetes運行容器

2010-08-24 09:10:14

Linux命令行工具

2009-08-11 09:10:26

Windows 7系統提速

2023-06-26 08:06:39

重構代碼冗余

2024-09-27 08:35:33

數組JavaScript性能

2016-02-22 09:27:18

2010-04-12 10:01:43

Windows 7運行速度

2024-11-01 07:30:00

2009-06-26 10:10:00

Hibernate狀態

2022-03-08 23:13:27

云計算Kubernetes云效率

2012-10-24 09:40:46

網絡優化系統優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区欧美 | 亚洲欧美中文日韩在线v日本 | 欧美日韩视频在线播放 | 激情黄色在线观看 | 视频一区在线播放 | 精品国产乱码久久久 | 天天干天天操天天看 | 国产精品久久久久久久久久久免费看 | 免费精品一区 | 国产精品免费福利 | 欧美亚洲激情 | 一区二区小视频 | 日韩av成人在线观看 | 久久99深爱久久99精品 | 99久久精品一区二区毛片吞精 | 欧美日韩中文字幕在线播放 | 五月天婷婷综合 | 国产精品一区二区三区在线 | 小川阿佐美pgd-606在线 | 国产成人精品福利 | 国产精品久久精品 | 81精品国产乱码久久久久久 | 日韩免费一区二区 | 国产精品激情小视频 | 国产美女久久 | 日韩欧美精品在线 | 亚洲国产精品久久久久 | 黄色网毛片 | 久久精品日产第一区二区三区 | 免费国产视频在线观看 | 婷婷色国产偷v国产偷v小说 | 久产久精国产品 | 免费在线播放黄色 | 欧美日韩福利视频 | 免费看淫片| 午夜婷婷激情 | 国产成人高清视频 | 婷婷毛片 | 亚洲精品一区二区三区蜜桃久 | 成年人在线观看视频 | 男女一区二区三区 |