为了账号安全,请及时绑定邮箱和手机立即绑定

闭包中的示例代码问题

上面举例有些问题的,如果按照上面的fs.append(f),那么,fs中保存的是f()函数的地址引用。当调用f1,f2,f3时,输出的也是地址。如果像例子中调用f1(),f2(),f3()会报错:"List" is not callable.列表不能被调用。 

只需要修改两处即可实现输出1*1,2*2,3*3的结果:

 fs.append(f()) 

print f1,f,f3 

输出结果:1,4,9 

亲测有效,其他代码无需修改。不过,这样使用,那闭包又有什么意义?

http://img1.sycdn.imooc.com//5615fb120001e2d805040240.jpg

正在回答

2 回答

个人看法啊,这个就是为了演示闭包而闭包的,真正用的时候接触django\flask框架时很多装饰器就是一种闭包...也初学,大牛勿喷哈

1 回复 有任何疑惑可以回复我~
#1

Darker李 提问者

可能老师就是这样想的
2015-10-09 回复 有任何疑惑可以回复我~
#2

Darker李 提问者

非常感谢!
2015-11-04 回复 有任何疑惑可以回复我~

你这样当然有效了,保留的是值而不是函数

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

闭包中的示例代码问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信