session = property(lambda self: object_session(self)) #記錄已有的session,hold住一個數據傳輸通道
一、概述
lambda的一般形式是關鍵字lambda后面跟一個或多個參數,緊跟一個冒號,以后是一個表達式。lambda是一個表達式而不是一個語句。它能夠出現在Python語法不允許def出現的地方。作為表達式,lambda返回一個值(即一個新的函數)。lambda用來編寫簡單的函數,而def用來處理更強大的任務。【1】
二、lambda的使用【1】
1、一般的形式
f = lambda x, y, z :x+y+z
print f(1,2,3) #6
2、lambda用來編寫跳轉表(jump table)行為的列表或者字典,(個人理解應該就是矩陣 matrix)吧
L = [lambda x: x+2, lambda x: x*2, lambda x: x**2]
print "L=", L[0](1), L[1](2), L[2](3)
#L = 3 4 9
D = {"d1": lambda x: x**1, "d2": lambda x: x**2, "d3": lambda x: x**3 }
print "D=", D["d1"](2), D["d2"](2), D["d3"](2)
# D= 2 4 8
寫了一下這兩個例子發現自己基礎真是爛包
3、lambda的嵌套使用,從可讀性角度來講應該避免(看了例子深有感觸,我有些懵)【2】
l = lambda: lambda x: x + 5
b = l()
print "b=", b(2)
print "==", (l())(2)
#b= 7
#== 7
4、與map函數的比較
def inc(x):
return x + 10
l = [1, 2, 3]
print map(inc, l)
print map(lambda x: x+10, l)
#[11, 12, 13]
#[11, 12, 13]
5、列表解析實現map功能並且更高效
6、以后全部是列表解析相關的示例------
--------41316--
參考鏈接:【1】、python學習12