3
我在Python中有兩個輸入,做一些操作,並返回兩個輸出的函數。我想重新排列輸出參數,所以我寫了周圍的新輸出順序創建一個新的功能圍繞lambda表達式的包裝
def rotate(f):
h = lambda x,y: -f(x,y)[1], f(x,y)[0]
return h
f = lambda x, y: (-y, x)
h = rotate(f)
但是原有功能的包裝功能,這給了一個錯誤信息:
NameError: global name 'x' is not defined
x
是一個lambda表達式的參數,爲什麼它必須被定義?
預期的行爲是h
應該是一個新的功能是相同的lambda x,y: (-x,-y)
既然你命名你的函數(即他們不是匿名的),我會避免使用'lambda'並使用'def'代替。 [Lambda表單](http://docs.python.org/tutorial/controlflow.html#lambda-forms)適用於小型*匿名*功能。 – 2010-09-01 00:25:42