2-10 匿名函式 lambda 的理解:
print filter(lambda s:s and len(s.strip())>0, ['test', none, '', 'str', ' ', 'end'])
lambda s 相當於 def f(s): s and len(s.strip()) 相當於 return s and len(s.strip()) lambda 冒號後面的部分相當於返回值。
2-11:裝飾器的理解:
python的 decorator 本質上就是乙個高階函式,它接收乙個函式作為引數,然後,返回乙個新函式。
使用 decorator 用python提供的@ 語法,這樣可以避免手動編寫f = decorate(f) 這樣的**。
裝飾器在原因的函式上增加新的功能,向乙個方法中傳入要增加功能的函式名,本例為factorial, 增加輸出起始時間的功能,此時的factorial的函式體相當於 fnew的函式體。
@:等價於 factorial=performance(factorial)
import time
def performance(f):
def fnew(*args,**kw):
print "%s"%(time.strftime("%x",time.localtime()))
return f(*args,**kw)
return fnew
#factorial=performance(factorial)
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
#factorial=performance(factorial)
print factorial(10)
Python高階學習
1 2 私有屬性是以雙下劃線 開頭的屬性,在類的外部訪問私有屬性將會丟擲異常,提示沒有這個屬性。3 45 class animal 6 location china 7 def init self,name,age 8 self.name name 9 self.age age 1011 locat...
python高階學習之高階函式
高階函式就是把函式當做引數傳遞的一種函式,例如 執行結果 map 接收乙個函式 f和乙個list,並通過把函式 f 依次作用在 list 的每個元素上,得到乙個新的 list 並返回。執行結果 reduce 函式接收的引數和 map 類似,乙個函式 f,乙個list,但行為和 map 不同,redu...
Python學習筆記 高階
定義乙個類 注意的是 在類中的每個函式中最少要有乙個self引數 其實這裡的self this class test name 張三丰 age 200 defsay self print hi i am san feng 例項化乙個物件 t1 test 通過物件呼叫自身的方法 t1.say pyth...