Python中使用Lambda实现数字翻倍的代码逻辑解析求助
理解这段Lambda函数实现数字翻倍的代码逻辑
咱们一步一步拆解这段代码,就能搞懂它的运行逻辑:
先看
myfunc(n)这个函数
它的作用不是直接返回计算结果,而是返回一个lambda匿名函数。这个lambda函数的定义是lambda a : a * n,翻译成人话就是:“我会接收一个参数a,然后返回a乘以n的结果”。这里的n就是外面myfunc的参数,lambda函数会“记住”这个n的值。mydoubler = myfunc(2)这一步
当你调用myfunc(2)时,n被赋值为2,此时myfunc返回的那个lambda函数就绑定了n=2这个值。然后把这个lambda函数赋值给mydoubler,所以现在mydoubler其实就是一个专门用来做“翻倍”的函数——接收一个数,返回它的2倍。print(mydoubler(11))的执行
调用mydoubler(11),就是把11传给lambda函数的参数a,计算11 * 2,结果是22,最后打印出来。
举个额外的例子帮你理解:如果你写mytripler = myfunc(3),那mytripler(10)就会返回30,因为这个lambda函数绑定的n是3,会做三倍计算。
内容的提问来源于stack exchange,提问作者Bilal Anees
相关产品推荐
相关产品推荐

