Maison > Questions et réponses > le corps du texte
Le code est le suivant :
# -*- coding:gb2312 -*-
def test(a,b,funC):
result = funC(a,b)
return result
funC = eval(input("请输入函数"))
num = test(11,22,funC)
print(num)
Exécuter comme suit :
Je saisis :
lambda x,y:x+y
ou
lambda x,y:x**y
les deux peuvent réussir et sans problème
Ma question est la suivante :
Les lettres après lambda sont x et y, qui sont différentes des a et b du funC(a,b) précédent
Pourquoi cela peut-il être vrai ?
En d’autres termes, pourquoi ne devrait-il pas être lambda a,b:a+b ? Les lettres que je saisis ne devraient-elles pas être les mêmes que les lettres ci-dessus ?
扔个三星炸死你2017-06-13 09:26:44
DoncParamètre réel (argument) : Le nom complet est "paramètre réel" qui est le paramètre transmis à la fonction lorsque est appelé. Les paramètres réels peuvent être constantes, variables, expressions, fonctions , etc.
Paramètre formel (. paramètre) : Nom complet Il s'agit d'un "paramètre formel" car ce n'est pas une variable réelle, c'est pourquoi on l'appelle également une variable factice. C'est le paramètre utilisé lors de la définition du nom de la fonction et du corps de la fonction.
a, b
dans lambda a,b:a+b
sont des paramètres formels et sont utilisés comme variables locales dans le corps de la fonction, tandis que x, y< /code> code> est utilisé comme variable locale dans le corps de la fonction, et la variable peut être un paramètre réel lambda a,b:a+b
中的 a, b
是形参, 在函数体内用作局部变量, 而x, y
在函数体内用作局部变量, 变量可以为实参的.所以作为lambda
Elle est donc utilisée comme paramètre réel de l'expression de la fonction lambda
. pas besoin d'être pareil
répondre0