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

return fs 返回的为什么是函数?不是返回的 list 吗???


def count():
    fs = []
    for i in range(1, 4):
        def f():
             return i*i
        fs.append(f)
    return fs

f1, f2, f3 = count()

原因就是当count()函数返回了3个函数时,这3个函数所引用的变量 i 的值已经变成了3。由于f1、f2、f3并没有被调用,所以,此时他们并未计算 i*i,当 f1 被调用时:

正在回答

2 回答

你可以试一下在函数中print fs,就可以看到确实是返回的列表,但是返回的数据不能用,因为用的是闭包的方法,所以只能用函数命名的方式才能把数据取出来(在需要用的时候),建议再把闭包看一遍,或者去找个小视频看看 比如小甲鱼

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

def count():

fs = []

for i in range(1,4):

def f():

return i*i

fs.append(f())

return fs

这样返回的是list

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

举报

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

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

进入课程

return fs 返回的为什么是函数?不是返回的 list 吗???

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信