Python中 lambda函數 含有多個參數的疑惑理解

lambda的基本語法和基礎應用,網上不少。這裏就很少說了。這裏主要說下lambda函數與其餘函數嵌套使用的問題。如下面的函數爲例python

def test(n):
	print (n)
	print ("-"*10)
	return lambda x:n+x 

a = test(1)
print(a(3))

輸出結果:函數

1
----------
4

一、  test(1)中的1 並無被傳到lambda函數裏。
二、a函數的實參,如本例中的  3,被傳遞到lambda 的參數裏,對應的形參是 x ,
三、lambda後面的表達式會在整個函數裏尋找變量,好比 n+x 中的n,就會在test函數中取值。code

即使是lambda參數裏的形參和test一致,由於第一條的緣故,會有產生如下結果class

def test(n):
	print (n)
	print ("-"*10)
	return lambda n:n+8 

a = test(1)
print(a(3))

結果:test

1
----------
11
相關文章
相關標籤/搜索