Kod adalah seperti berikut:
# -*- coding:gb2312 -*-
def test(a,b,funC):
result = funC(a,b)
return result
funC = eval(input("请输入函数"))
num = test(11,22,funC)
print(num)
Laksanakan seperti berikut:
Saya input:
lambda x,y:x+y
atau
lambda x,y:x**y
kedua-duanya boleh berjaya dan tiada masalah
Soalan saya ialah:
Huruf selepas lambda ialah x dan y, yang berbeza daripada a dan b dalam funC(a,b) sebelumnya
Mengapa ini boleh benar?
Dalam erti kata lain, kenapa tidak sepatutnya lambda a,b:a+b?
a, b
dalamlambda a,b:a+b
ialah parameter formal dan digunakan sebagai pembolehubah tempatan dalam badan fungsi, manakalax, y code> digunakan sebagai pembolehubah tempatan dalam badan fungsi, dan pembolehubah
boleh menjadi parameter sebenar
lambda a,b:a+b
中的a, b
是形参, 在函数体内用作局部变量, 而x, y
在函数体内用作局部变量, 变量可以为实参的.所以作为lambda
Jadi ia digunakan sebagai parameter sebenar ungkapan fungsilambda
tak perlu sama