课程
/后端开发
/Python
/python进阶
为什么count()返回函数时,i的值全变成了3
2020-04-18
源自:python进阶 2-9
正在回答
貌似是你函数外面调用了,其实代码执行顺序已经在for循环之后了,而for循环完了最后的结果就是i=3,因此是3*3
很好理解啊,for循环执行了完了,i就是成的range(1,4)生成的list[1,2,3]的最后一个值,犹如函数f1,f2,f3是for循环结束的时候你才调用的,所以就变成3*3了,如果你for循环一次就直接返回就1*1了,如:
def count():
fs = []
for i in range(1,4):
def f():
return i*i
fs.append(f)
break
return fs
f1 = count()
print f1[0]()
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计