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

关于python 闭包(2-9)这节课遇到的问题

关于python 闭包(2-9)这节课遇到的问题

vampire小奇 2016-08-29 18:56:15
def count():     fs = []     for i in range(1, 4):                  def f(j):             def g():                 return j*j             return g                  r = f(i)         fs.append(r)     return fs我在编译器里输了这段代码,然后执行:f1 = count()打印f1:(f1打印出的地址是个g函数集合)[<function g at 0x0000000002ECE358>, <function g at 0x0000000002ED0CF8>, <function g at 0x0000000002ECE3C8>]然后在执行:f1,f2,f3 = count()打印f1:<function g at 0x0000000002ECE4A8>这时候f1打印出的地址不是集合而是单个g函数,这是为什么?
查看完整描述

1 回答

已采纳
?
AIxer

TA贡献22条经验 获得超13个赞

嗯~,怎么说呢~,这样吧,举个例子:Python语言允许这样赋值://img1.sycdn.imooc.com//57c42e7d0001f9be02020140.jpg ,当执行完那段代码后,count()返回的列表里的元素就这样被分配下去了啦~,^_^  希望对你有用~

查看完整回答
2 反对 回复 2016-08-29
  • 1 回答
  • 0 关注
  • 1340 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信