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

求助 函数闭包问题

求助 函数闭包问题

shenx 2015-05-02 19:28:03
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 fsf1, f2, f3 = count()print f1(), f2(), f3()在 r = f(i)处不理解   f(i) == g 而不是 g(),这个r是否等于 j*j   是不是r() 才等于j*j,fs.append(r)添加的是什么啊测试如下def f(i):     def g():         return i*i     return g>>> f(1)<function f.<locals>.g at 0x01106A08>>>> f(1)()1>>> f(9)()81>>> q = f(8)>>> q<function f.<locals>.g at 0x01106A08>
查看完整描述

1 回答

?
shenx

TA贡献1条经验 获得超1个赞

然而知道了   上部分代码最后print f1(), f2(), f3()  有括号了.....哎。。。看代码不仔细.以后留意

查看完整回答
1 反对 回复 2015-05-02
  • 1 回答
  • 0 关注
  • 1163 浏览
慕课专栏
更多

添加回答

举报

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