搜索

首页  >  问答  >  正文

python小白 问关于形参和实参的问题

代码如下:

# -*- 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 我输入的字母不应该跟上面的字母是一样的么?

phpcn_u1582phpcn_u15822816 天前1101

全部回复(1)我来回复

  • 扔个三星炸死你

    扔个三星炸死你2017-06-13 09:26:44

    实参(argument):全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等.
    形参(parameter):全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数.

    所以lambda a,b:a+b 中的 a, b是形参, 在函数体内用作局部变量, 而x, y在函数体内用作局部变量, lambda a,b:a+b 中的 a, b是形参, 在函数体内用作局部变量, 而x, y在函数体内用作局部变量, 变量可以为实参的.所以作为lambda变量可以为实参的

    .所以作为lambda函数表达式的实参. 不需要一样的.🎜

    回复
    0
  • 取消回复