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

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

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

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

添加回答

代码语言

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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