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

深度剖析Python函數(shù)編程技巧

開(kāi)發(fā) 后端
也許大家對(duì)Python函數(shù)還不是很了解,看完本文后對(duì)您一定會(huì)大有幫助,下文除了學(xué)習(xí)Python函數(shù)編程的基本操作外還對(duì)Python函數(shù)編程新技巧進(jìn)行全面研究。

Python函數(shù)編程里面, 我們可以定義匿名函數(shù),也可以把函數(shù)賦值給一個(gè)變量或作為參數(shù)傳遞給另外一個(gè)函數(shù),以遠(yuǎn)低于Java編輯-編譯-測(cè)試的開(kāi)發(fā)時(shí)間提升Java類(lèi)庫(kù)的運(yùn)用,代碼如下所示:

  1. >>> f=lambda(n):n**2  
  2. >>> f(6)  
  3. 36  
  4.  
  5. >>> f=lambda(n):lambda(m):n*m  
  6. >>> g=f(5) #相當(dāng)與g=lambda(m):5*m  
  7. >>> g(9) #相當(dāng)于5*9  
  8. 45 

lambda定義的匿名函數(shù)可以引用外圍函數(shù)的變量,上面的代碼中,第二個(gè)lambda表達(dá)式定義的匿名函數(shù)引用了第一個(gè)匿名函數(shù)的參數(shù)n,因?yàn)榈谝粋€(gè)匿名函數(shù)是第二個(gè)匿名函數(shù)的外圍函數(shù)。

除了lambda表達(dá)式之外,python還支持將函數(shù)作為參數(shù)傳遞給另外一個(gè)函數(shù),有點(diǎn)類(lèi)似于C語(yǔ)言中的函數(shù)指針,Python函數(shù)編程內(nèi)建的函數(shù)filter,map,reduce就可以接受函數(shù)參數(shù)。

filter(function, sequence)會(huì)遍歷sequence中的每一個(gè)item,并以該item為參數(shù)調(diào)用function,如果function返回ture,就將該item加到結(jié)果sequence中,這就達(dá)到過(guò)濾sequence的效果,作為參數(shù)的function就是過(guò)濾的條件,例子如下:

  1. >>> def add(x,y):  
  2.     return x+y  
  3.  
  4. >>> reduce(add,range(1,10))  
  5. 45 

IT部分通常要完成的任務(wù)相當(dāng)繁重但支撐這些工作的資源卻很少,這已經(jīng)成為公開(kāi)的秘密。任何承諾提高編碼效率、降低軟件總成本的IT解決方案都應(yīng)該進(jìn)行 周到的考慮。Python所具有的一個(gè)顯著優(yōu)勢(shì)就是可以在企業(yè)的軟件創(chuàng)建和維護(hù)階段節(jié)約大量資金,而這兩個(gè)階段的軟件成本占到了軟件整個(gè)生命周期中總成本 的50%到95%。

Python清晰可讀的語(yǔ)法使得軟件代碼具有異乎尋常的易讀性,甚至對(duì)那些不是最初接觸和開(kāi)發(fā)原始項(xiàng)目的程序員都 能具有這樣的強(qiáng)烈感覺(jué)。雖然某些程序員反對(duì)在Python代碼中大量使用空格。

不過(guò),幾乎人人都承認(rèn)Python代碼的可讀性遠(yuǎn)勝于C或者Java,后兩 者都采用了專(zhuān)門(mén)的字符標(biāo)記代碼塊結(jié)構(gòu)、循環(huán)、函數(shù)以及其他編程結(jié)構(gòu)的開(kāi)始和結(jié)束。提倡Python的人還宣稱(chēng),采用這些字符可能會(huì)產(chǎn)生顯著的編程風(fēng)格差 異,使得那些負(fù)責(zé)維護(hù)代碼的人遭遇代碼可讀性方面的困難。

Python明晰的語(yǔ)法使其成為一種學(xué)習(xí)曲線平和的編程語(yǔ)言。有經(jīng)驗(yàn)的程序員甚至可能在一天之內(nèi)就掌握Python的基礎(chǔ)知識(shí),至多不過(guò)一周作用就可以上手,而編程語(yǔ)言的專(zhuān)家則肯定會(huì)比他掌握C、C++、Java甚至Perl要快很多。

Python函數(shù)編程因其語(yǔ)法的明晰而獲得的最大好處或許該算是開(kāi)發(fā)時(shí)間的大大降低了。一名從事企業(yè)級(jí)應(yīng)用程序開(kāi)發(fā)工作的開(kāi)發(fā)人員告訴我,他所在單位的開(kāi)發(fā)時(shí)間 因?yàn)?FONT>Python的采用而大大節(jié)約。#t#

同時(shí)卻并沒(méi)有給軟件性能帶來(lái)任何負(fù)面影響,他說(shuō):“就我們的業(yè)務(wù)而言,快速地開(kāi)發(fā)出新產(chǎn)品比開(kāi)發(fā)出性能驚人的軟件產(chǎn)品 要重要得多,開(kāi)發(fā)時(shí)間相比軟件的優(yōu)化要貴得多(以每小時(shí)計(jì)算)。

對(duì)開(kāi)發(fā)速度采用何種評(píng)價(jià)標(biāo)準(zhǔn)一直是個(gè)很難確定的問(wèn)題,不過(guò)通常情況下,普遍認(rèn)為開(kāi)發(fā)Python應(yīng)用程序的速度大約是用Java開(kāi)發(fā)同類(lèi)應(yīng)用程序速度的10倍。要是相比C/C++節(jié)約的時(shí)間就更多了。

責(zé)任編輯:chenqingxiang 來(lái)源: 51CTO.com
相關(guān)推薦

2010-01-13 10:16:42

C++軟件

2010-02-24 16:44:58

Python 函數(shù)

2010-03-01 14:50:06

Python 工具

2010-03-01 18:33:30

2010-02-02 15:25:35

Python語(yǔ)法

2010-02-03 16:56:24

Python包

2010-02-01 13:34:59

Python 腳本

2010-03-05 13:34:54

2010-02-26 17:44:40

Python測(cè)試框架

2010-02-22 13:53:22

Python 中文亂碼

2010-02-23 10:05:52

Python歷史

2010-02-02 13:22:06

Python面向?qū)ο?/a>

2010-02-26 10:38:29

Python語(yǔ)言

2010-02-03 11:26:28

2010-02-24 16:33:28

Python功能

2012-12-25 09:45:08

PythonWeb

2024-09-11 16:30:55

Python函數(shù)編程

2024-04-28 09:28:49

2010-02-01 14:05:03

2010-03-01 17:40:29

Python面向?qū)ο笳Z(yǔ)
點(diǎn)贊
收藏

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