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

j的值是怎么来的?

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, f2, f3 = count()
print f1(), f2(), f3()

正在回答

1 回答

来看看r = f(i),这里的r引用了f函数,所以r可以当做一个函数调用,调用r()就是相当于调用f(i),接着我们把r添加进了列表。相当于 fs[f(i)]。

接着for又循环了两次,所以啊,最后返回的是一个包含三个元素的列表,每个元素都是一个函数,这个函数就是f(i)的返回值g函数。

至于你说的j值,只是个形参,在r = f(i) 这里就是把i值赋给了形参j了 所以 j就是"当时的i"。

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

__微醺

应该说调用r就是当用f(i) 上面打错了,不好意思...
2017-08-28 回复 有任何疑惑可以回复我~
#2

慕村8182185 提问者

可能基础没学好=_=没搞懂形参
2017-08-28 回复 有任何疑惑可以回复我~
#3

慕村8182185 提问者

非常感谢!
2017-08-29 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

j的值是怎么来的?

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