Maison > Questions et réponses > le corps du texte
Premier code :
# -*- coding:gb2312 -*-
def test(a,b,funC):
result = funC(a,b)
return result
funC = eval(input("请输入函数"))
num = test(11,22,funC)
print(num)
Vous pouvez saisir des fonctions anonymes comme lambda x,y:x+y dans l'entrée.
Maintenant, je pense qu'il est trop difficile de saisir lambda x,y:x+y. Je veux écrire directement le lambda x,y: précédent. Lors de la saisie, saisissez directement la partie x+y, donc je mets Changer le code. au suivant :
Deuxième code :
# -*- coding:gb2312 -*-
def test(a,b,funC):
result = funC(a,b)
return result
funA = eval(input("请输入函数"))
funB = "lambda x,y:"
funC = eval(funB)+funC
num = test(11,22,funC)
print(num)
Après avoir changé en :
Le résultat est l'erreur suivante.
Je n’ai pas tout compris d’un coup, je ne sais pas ce que ça veut dire.
Je veux demander, pourquoi ne puis-je pas le changer comme ça ?
Dans le premier morceau de code :
funC = eval(input("请输入函数")) #运行时输入:lambda x,y:x+y
et dans le deuxième morceau de code :
funA = eval(input("请输入函数")) #运行时输入:x+y
funB = "lambda x,y:"
funC = eval(funB)+funC
Ces deux morceaux de code ne devraient-ils pas être équivalents ?
Pourquoi le premier peut-il être exécuté sans problème alors que le second signalera une erreur ?
怪我咯2017-06-13 09:26:43
Le deuxième code devrait être :
strA = input("请输入函数")
strB = "lambda x,y:"
funC = eval(strB+strA)
Ce que vous avez entré n'est pas une fonction, pas une fonction, pas une fonction. Ce que vous avez entré est un changement de caractère. La fonction de eval est de traiter la chaîne que vous saisissez comme un code python et de l'exécuter
滿天的星座2017-06-13 09:26:43
Deux points :
# -*- coding:gb2312 -*-
def test(a,b,funC):
result = funC(a,b)
return result
funA = input("请输入函数") #这儿改成 input("请输入函数")
funB = "lambda x,y:"
funC = eval(funB)+funC #这儿改成 eval(funB+funA)
num = test(11,22,funC)
print(num)
phpcn_u15822017-06-13 09:26:43
funC = eval("lambda x,y:" + input("请输入函数"))
num = test(11,22,funC)
print(num)