偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

開發(fā) 后端
最近用到個(gè)工程,因?yàn)榭紤]到效率,所以需要用Python 特性中的filter()函數(shù)來(lái)過(guò)濾一個(gè)列表,而這個(gè)過(guò)濾函數(shù)實(shí)際上需要2個(gè)參數(shù)而filter()只能傳遞給過(guò)濾函數(shù)一個(gè)參數(shù)。

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

仔細(xì)分析一下,這2個(gè)參數(shù)中,有1個(gè)Python 特性是在request生存期內(nèi)不變的,而另外一個(gè)是用于過(guò)濾的值。所以最終用了一下lambda來(lái)做了個(gè)函數(shù)的分階段參數(shù)傳遞。例子如下,過(guò)濾函數(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是一種動(dòng)態(tài)語(yǔ)言,而且還常常號(hào)稱是動(dòng)態(tài)語(yǔ)言里面最慢的一個(gè)。最近Ruby的出現(xiàn)才略微改變了一下這種情況。呵呵,聽說(shuō)Ruby比Python還要“動(dòng)態(tài)”一些。在Python中提高效率的一種可選辦法是確??勺x性的情況下避免使用動(dòng)態(tài)特性,比如過(guò)多的"."操作符就很低效。

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

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

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

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

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

【編輯推薦】

  1. 如何使Python嵌入C++應(yīng)用程序?
  2. 深入探討Ruby與Python語(yǔ)法比較
  3. Python學(xué)習(xí)資料介紹分享
  4. Python學(xué)習(xí)經(jīng)驗(yàn)談:版本、IDE選擇及編碼解決方案
  5. 淺析Python的GIL和線程安全
責(zé)任編輯:chenqingxiang 來(lái)源: 清華大學(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中文問(wèn)題

2009-12-28 16:55:30

2010-02-02 14:54:28

Python語(yǔ)法

2010-03-10 11:26:29

交換機(jī)配置

2010-02-24 17:22:59

Python項(xiàng)目

2010-02-01 17:11:45

Python 解釋器

2010-02-23 14:41:28

Python模塊

2009-11-06 11:10:01

2010-01-13 13:27:00

C++優(yōu)化

2010-03-01 10:39:18

Python源代碼

2010-02-22 14:42:19

Python 控制語(yǔ)句

2010-01-13 15:41:02

C++的復(fù)雜

2010-02-22 15:13:01

Python模塊

2010-03-01 15:57:59

Python開發(fā)工具

2010-03-01 15:23:24

Python操作語(yǔ)言

2010-02-01 16:32:49

Python腳本

2010-02-26 11:20:53

Python應(yīng)用
點(diǎn)贊
收藏

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