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

这样理解对不对

def count():    fs = []    for i in range(1, 4):        def g(j):            def h():                return j * j            return h        f = g(i)        fs.append(f)    return fs f1, f2, f3 = count() print f1(), f2(), f3() 这题我也绕晕了好久,我的理解:我们可以看到h()其实是没有入参的,所以它里边的j值是不会改变的,是多少就是多少,大家看看对不?

正在回答

1 回答

闭包是对于两个函数的,当进入外部函数时,如果内部函数引用了外部函数的变量,那么这个变量在进入外部函数那一刻就应该是不变的。g() == 外部函数、 h() == 内部函数  j就是这个变量  h()入不入参不影响

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

举报

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

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

进入课程

这样理解对不对

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