初级编程通关练习题 #10 – 匿名函数陷阱

我们在使用Python的匿名函数时,经常会生成临时函数然后在后面再调用,但是如果不注意就会出现意想不到的错误,譬如下面的代码: 我们期望看到的结果是 0、3、6、9,但是实际上显示出来的却是四个 9。 请修改上面的匿名函数代码,让下面循环调用函数 f(3)的结果为 0、3、6、9。 解决思路: 这个问题的本质是Python函数变量作用域里的闭包实现方式所导致的。解决的方法有如下几种:使用函数工厂模式使用函数默认参数使用 eval 方法使用 yield 方法使用 partial 方法使用 tuple