Python将函数作为另一函数参数时,twice函数中参数z的作用是什么
参数z的作用说明
你提供的代码规范格式化后如下:
def add(x, y): return x + y def twice(z, x, y): return z(z(x, y), z(x, y)) a = 5 b = 10 print(twice(add, a, b))
- z是
twice函数的第一个形参,作用是接收一个接收两个入参的可调用对象(本示例传入的是add求和函数),属于Python的高阶函数用法,支持把函数作为参数传入复用逻辑。
代码运行逻辑拆解
代入示例参数twice(add, 5, 10),执行流程如下:
- 先执行两次内层的
z(x,y)也就是add(5,10),两次计算结果都为15 - 把两个15作为新的入参再次传入
z也就是add,得到add(15,15)的结果30 - 最终
print输出结果为30
这种写法通用性很强:如果替换传入
twice的第一个参数为其他二元函数,比如乘法函数,不需要修改twice的代码就能实现新的逻辑,比如传入求积函数的话,执行结果就是(5*10) * (5*10) = 2500。
内容的提问来源于stack exchange,提问作者Roger Rabbit
相关产品推荐
相关产品推荐

