自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

有關(guān)Python 特性問題說明研究

開發(fā) 后端
最近用到個工程,因為考慮到效率,所以需要用Python 特性中的filter()函數(shù)來過濾一個列表,而這個過濾函數(shù)實際上需要2個參數(shù)而filter()只能傳遞給過濾函數(shù)一個參數(shù)。

大多數(shù)開發(fā)人員對于開發(fā)Python應(yīng)用程序的速度大約是用Java開發(fā)同類應(yīng)用程序速度的10倍,要是相比C/C++節(jié)約的時間就更多了,對開發(fā)速度采用何種評價標(biāo)準(zhǔn)一直是個很難確定的問題,下文就對Python 特性進(jìn)行學(xué)習(xí)。

仔細(xì)分析一下,這2個參數(shù)中,有1個Python 特性是在request生存期內(nèi)不變的,而另外一個是用于過濾的值。所以最終用了一下lambda來做了個函數(shù)的分階段參數(shù)傳遞。例子如下,過濾函數(shù):

  1.    # Normal statement-based flow control   
  2.           
  3.           
  4.           if  
  5.          <cond1>:   func1()   
  6.           
  7.           elif  
  8.          <cond2>: func2()   
  9.           
  10.           else  
  11.         :         func3()   
  12.    
  13.         # Equivalent "short circuit" expression   
  14. (<cond1>   
  15.           
  16.           and  
  17.          func1())   
  18.           
  19.           or  
  20.          (<cond2>   
  21.           
  22.           and  
  23.          func2())   
  24.           
  25.           or  
  26.          (func3())   
  27.    
  28.         # Example "short circuit" expression   
  29. >>> x = 3   
  30. >>>   

Python是一種動態(tài)語言,而且還常常號稱是動態(tài)語言里面最慢的一個。最近Ruby的出現(xiàn)才略微改變了一下這種情況。呵呵,聽說Ruby比Python還要“動態(tài)”一些。在Python中提高效率的一種可選辦法是確??勺x性的情況下避免使用動態(tài)特性,比如過多的"."操作符就很低效。

另外,就是可以用一些函數(shù)式編程的方法,比如很多內(nèi)置函數(shù),如map()、filter()、zip()等等,應(yīng)用lambda也是個不錯的辦法。自從 Python 1.0 以來,Python 具有上面列出的大多數(shù) FP 特征。但對于大多數(shù) Python 特性,它們以一種非常混合的語言呈現(xiàn)。

很大程度上是因為Python 特性的 OOP 特性,您可以使用希望使用的部分而忽略其余部分(直到在稍后需要它為止)。使用 Python 2.0, 列表內(nèi)涵添加了一些 非常棒的“句法上的粉飾”。雖然列表內(nèi)涵沒有添加什么新的能力,但它們使許多舊的能力看起來好了 許多。

Python 中 FP 的基本元素是函數(shù) map() 、 reduce() 和 filter() ,以及運算符 lambda 。在 Python 1.x 中, apply() 函數(shù)對于將一個函數(shù)的列表返回值直接應(yīng)用于另一個函數(shù)也很方便。

Python 2.0 為這一目的提供了改進(jìn)的語法??赡茏屓顺泽@,但很少的這幾個函數(shù)(以及基本運算符)幾乎足以編寫任何 Python程序;特別是,所有的流控制語句( if 、 elif 、 else 、 assert 、 try 、 except 、 finally 、 for 、 break 、 continue 、 while 、 def )可以只使用 FP 函數(shù)和運算符以函數(shù)風(fēng)格處理。

雖然實際上消除程序中的所有流控制命令可能只對加入“混亂的 Python”競爭(與看上去非常象 Lisp 的代碼)有用,但是理解 FP 是如何使用函數(shù)和遞歸來表示流控制是值得的。

【編輯推薦】

  1. 如何使Python嵌入C++應(yīng)用程序?
  2. 深入探討Ruby與Python語法比較
  3. Python學(xué)習(xí)資料介紹分享
  4. Python學(xué)習(xí)經(jīng)驗談:版本、IDE選擇及編碼解決方案
  5. 淺析Python的GIL和線程安全
責(zé)任編輯:chenqingxiang 來源: 清華大學(xué)出版社
相關(guān)推薦

2010-03-16 15:12:44

光纖交換機(jī)

2010-02-06 09:45:49

Android屬性

2010-02-26 15:43:02

Python線程

2010-02-22 13:20:58

Python中文問題

2009-12-28 16:55:30

2010-02-02 14:54:28

Python語法

2010-02-24 17:22:59

Python項目

2010-02-23 14:41:28

Python模塊

2010-02-01 17:11:45

Python 解釋器

2010-03-10 11:26:29

交換機(jī)配置

2009-11-06 11:10:01

2010-03-01 10:39:18

Python源代碼

2010-02-22 14:42:19

Python 控制語句

2010-01-13 13:27:00

C++優(yōu)化

2010-02-22 15:13:01

Python模塊

2010-03-01 15:57:59

Python開發(fā)工具

2010-01-13 15:41:02

C++的復(fù)雜

2010-02-26 11:20:53

Python應(yīng)用

2010-02-01 16:32:49

Python腳本

2010-03-01 15:23:24

Python操作語言
點贊
收藏

51CTO技術(shù)棧公眾號