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

这里变量j=i,i是循环变量,那么j不是也变成循环变量了吗?

def f(j):
           def g():
               return j*j
           return g
       r = f(i)



正在回答

1 回答

当调用count()时,开始执行循环语句,i分别变成1,2,3即fs=[f(1),f(2),f(3)],因为f1,f2,f3 = count(),因此f1=f(1),f2=f(2),f3=f(3)。然后执行f1(),f2(),f3(),即分别调用三个函数,由代码可知

def f(j):

            def g():

                return j*j

            return g

即f1=f(1)=g,所以f1()=g(),执行g函数,返回j*j,此时j=1 所以f1()=1。类似,f2=f(2)=g,此时j为2,因此f2()=g()=4。所以f3()也可算出为9。

你要明白当调用count()时,循环体开始运行,但只是再不停给fs添加元素,f函数根本没有被调用,所以j根本没参与循环,只有i在参与循环。当f被调用时j再一一对应i的值进行计算

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

举报

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

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

进入课程

这里变量j=i,i是循环变量,那么j不是也变成循环变量了吗?

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