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

看不懂代码,谁能帮忙解释一下啊

改掉的部分


正在回答

4 回答

我认为count()函数执行完毕后的结果是[f(1),f(2),f(3)],然后下一步再具体计算(1),f(2),f(3)分别为1*1,2*2,3*3

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

ls有一点描述有误吧  fs是在循环完才返回的 有且只返回一次

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

def count():
   fs=[]
   for i in range(1,4):
    def t(i):
      def g():
        return i*i
      return g  
    r=t(i)
    fs.append(r)
  return fs
f1,f2,f3=count()
print f1(),f2(),f3()

首先,代码先执行f1,f2,f3=count(),调用count()函数,然后经历循环,i=1, 然后执行r=t(1),fs.append(t(1)),

然后返回fs,然后继续循环 i=2, r=t(2),fs.append((t2)),i=3,r=t(3),fs.append((t3)),结束循环,此时fs中[t(1),t(2),t(3)]

也就是[g1,g2,g3),最后print f1(),f2(),f3()调用def g()函数分别在i=1,2,3的情况下的数值


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

只是把上面示例中的count变成__count,外面不能直接print Person.__count

但被上面那个函数调用了之后可以print输出cls.__count的结果

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

举报

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

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

进入课程

看不懂代码,谁能帮忙解释一下啊

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