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

针对这道题一个疑问!小白。。。。。。。。。。。。。。。

针对这道题一个疑问!小白。。。。。。。。。。。。。。。

asdhjhg 2017-03-05 21:09:46
# 希望一次返回3个函数,分别计算1x1,2x2,3x3 def count():     fs = []     for i in range(1, 4):         def f():              return i*i         fs.append(f)     return fs f1, f2, f3 = count()这道题有错误,f1(),f2(),f3()最后都是9很多人发表了原因,大都说的差不多的话,但是我没看懂他们说的。。。。。。为何那好,就此问题:最后的return fs   这是的fs应该是[locatian1,location2,location3],这三个应该是f()的三个地址那么 题后的f1,f2,f3=count()转化为-->f1=location1;f2=location2;f3=location3那么f1(),f2(),f3()实际上都是对应了自己的位置,return了自己对应的i*i啊,为何最后都是9???为何说“因为虽然返回的参数分别是1,2,3,但这几个函数并没有计算,等到计算的时候(print f1, f2, f3...)i已经变成了3了,算以算出来都是9.”???真是没懂
查看完整描述

1 回答

?
qq_子非鱼焉知梦_0

TA贡献1条经验 获得超0个赞

http://www.imooc.com/wenda/detail/343715?t=230845

刚回答了一个类似的问题、可以去看下、

查看完整回答
反对 回复 2017-03-05
  • 1 回答
  • 0 关注
  • 1214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信