程式碼如下:
## -*- coding:gb2312 -*-
def test(a,b,funC):
result = funC(a,b)
return result
funC = eval(input("请输入函数"))
num = test(11,22,funC)
print(num)
執行如下:
##我輸入:
lambda x,y:x y
或
lambda x,y:x**y
都可以成功沒問題
我的問題是:
lambda 後面的字母是x和y 和前面funC(a,b)裡面的a,b 不一樣
為什麼也可以成立?
換句話說,為什麼不應該是lambda a,b:a b 我輸入的字母不應該跟上面的字母是一樣的麼?
所以
lambda a,b:a+b
中的a, b
是形參, 在函數體內用作局部變量, 而x, y
在函數體內用作局部變量, 變量可以為實參的.所以作為lambda
函數表達式的實參. 不需要一樣的.