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

本节没太看懂

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()

正在回答

3 回答

f1, f2, f3 = count()

这局话给解释一下吧。count函数返回值是list类型呀。。。。为什么弄出三个呢,,,,f1=[g,g,g]

f2=[g,g,g]

f3=[g,g,g]

应该是这样的呀,为啥f1()

f2()

f3()

还能执行啊???想不明白了

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

主要是f(j)这一层函数,不加这一层函数的话f1, f2, f3 = count()这句代码会直接调用函数count里i被运行3次后得到的结果(f1,f2,f3都是一样的结果),加上f(j)这层函数后只有f1()才会计算函数的结果,f1, f2, f3 = count()会延时计算(也就是这句不会计算结果)

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

先生成一个list,然后进入一个循环,定义两成函数计算平方,r的作用是可以外部调用,然后把所得结果添加进list中,最后在外部可以直接调用f1, f2, f3 也可以调用f1(), f2(),f 3()

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

举报

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

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

进入课程

本节没太看懂

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号