免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2274 | 回复: 3
打印 上一主题 下一主题

闭包的问题 [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-03-25 17:04 |只看该作者 |倒序浏览
第一个:
a1,a2,a3 = ppp( )
print a1,a2,a3         会报错
print a1(),a2(),a3()   正常


而第二个:
print f1( ),f2( ),f3( ) 却会报错

Screenshot from 2015-03-25 17:01:36.png (31.19 KB, 下载次数: 31)

Screenshot from 2015-03-25 17:01:36.png

论坛徽章:
5
技术图书徽章
日期:2014-04-18 08:52:38午马
日期:2014-04-30 13:28:11摩羯座
日期:2014-11-07 13:34:122015年亚洲杯之日本
日期:2015-03-12 14:01:4915-16赛季CBA联赛之北京
日期:2017-06-28 17:25:56
2 [报告]
发表于 2015-03-26 09:12 |只看该作者
  1. def f(ss):
  2.             def  inside():
  3.                 return ss**ss
  4.             return inside
复制代码
你需要的可能是这个吧?

论坛徽章:
0
3 [报告]
发表于 2015-03-26 21:32 |只看该作者
a1,a2,a3是列表nol的三个元素,元素又是函数对象,所以a1()a2()a3()了,不过print a1 a2 a3也不会包错吧。
f1,f2,f3是三个值了,所以f1,f2,f3.

个人的理解

论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
4 [报告]
发表于 2015-05-21 17:08 |只看该作者
不会报错吧。
  1. #!/usr/bin/python2

  2. def ppp():
  3.     nol = []
  4.     for x in range(1, 4):
  5.         def f(): return x * x
  6.         nol.append(f)
  7.     return nol

  8. a, b, c = ppp()

  9. print a, b, c

  10. # <function f at 0x7f9790d5a6e0> <function f at 0x7f9790d5a758> <function f at 0x7f9790d5a7d0>

  11. print a(), b(), c()

  12. # 9 9 9


  13. def qqq():
  14.     nol = []
  15.     for x in range(1, 4):
  16.         def f(x=x): return x * x
  17.         nol.append(f)
  18.     return nol

  19. x, y, z = qqq()

  20. print x, y, z

  21. # <function f at 0x7f3197ab88c0> <function f at 0x7f3197ab8938> <function f at 0x7f3197ab89b0>

  22. print x(), y(), z()

  23. # 1 4 9
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP