一个入门自定义代码的解释请教(自定义函数的套嵌)

def add(x,y):
    return x+y
def abb(abb,x,y):
    return abb(abb(x,y),abb(x,y))
a=5
b=10
print(abb(add,a,b))

这段代码我研究了好久,始终不太明白其运行的合理解释,请不吝赐教!

Jason990420
最佳答案

Python函数被认为是一流的函数,这意味着它们可以被分配给变量,复制,
用作其他函数的参数等,就像任何其他对象一样。

def abb(abb, x, y)中的第一个abb是函数名, 第二个abb是函数的参数名;
return add(abb(x,y), abb(x,y))中的abb都是函数中的变量

当print(abb(add, a, b)), abb把三个参数(add, a, b)转换成(add, a, b), 所以
return abb(abb(x,y), abb(x,y)) 就变成
return add(add(a,b), add(a,b))

所以结果就是add(add(5, 10), add(5, 10) => 30

4年前 评论
gzh888666 (楼主) 4年前
讨论数量: 1
Jason990420

Python函数被认为是一流的函数,这意味着它们可以被分配给变量,复制,
用作其他函数的参数等,就像任何其他对象一样。

def abb(abb, x, y)中的第一个abb是函数名, 第二个abb是函数的参数名;
return add(abb(x,y), abb(x,y))中的abb都是函数中的变量

当print(abb(add, a, b)), abb把三个参数(add, a, b)转换成(add, a, b), 所以
return abb(abb(x,y), abb(x,y)) 就变成
return add(add(a,b), add(a,b))

所以结果就是add(add(5, 10), add(5, 10) => 30

4年前 评论
gzh888666 (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!