课程
/后端开发
/Python
/python进阶
求大神帮忙!!!
2018-06-25
源自:python进阶 2-9
正在回答
执行循环体的时候,数组fs在添加函数f,但是此时函数f并没有执行,这里将此处的函数f当成一个常量或者变量看待就好了,i的值还是在增加,最后i为3的时候,循环体执行完毕,数组count()的返回值就是[f函数1, f函数2,f函数3], 然后你使用循环打印数组中的数据,其实你这样打印出来的是一些function,打印不出来结果的,你需要将print j替换成print j() 才会有结果,这样就是去执行f函数体里面的内容,因为i已经为3了,所以三个函数的结果都是9.
def count(): fs = [] for i in range(1, 4): def f(a): print("i的值等于" + str(a)) return a * a fs.append(f(i)) return fs for j in count(): print(j)
执行结果:
i的值等于1 i的值等于2 i的值等于3 1 4 9
如果这样修改的话,结果就是1,4,9了。
微sun 提问者
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计