Rumah > Soal Jawab > teks badan
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?
扔个三星炸死你2017-06-13 09:26:44
JadiParameter sebenar (argumen): Nama penuh ialah "parameter sebenar" iaitu parameter dihantar ke fungsi apabila dipanggil Parameter sebenar boleh menjadi pemalar, pembolehubah, ungkapan, fungsi , dsb.
Parameter formal (. parameter): Nama penuh Ia adalah "parameter formal" kerana ia bukan pembolehubah sebenar, jadi ia juga dipanggil pembolehubah tiruan. Ia adalah parameter yang digunakan semasa mentakrifkan nama fungsi dan badan fungsi.
a, b
dalam lambda a,b:a+b
ialah parameter formal dan digunakan sebagai pembolehubah tempatan dalam badan fungsi, manakala x, y< /code> 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 fungsi lambda
tak perlu sama
balas0