Discuss / Python / 关于fs函数的调用

关于fs函数的调用

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

f1, f2, f3 = count()

当调用f1()时,实际上是在调用fs()吧?而此时fs是由三个函数f组成的list,那么f1()怎么知道调用的是fs这个list中的第几个函数呢?(虽然他们都一样,都是f)

已经明白了 :) f1,f2,f3分别对应fs这个list中的三个f函数

编辑同学

#3 Created at ... [Delete] [Delete and Lock User]

我也有这个问题。已经看明白了。多谢。

报三春晖

#4 Created at ... [Delete] [Delete and Lock User]

请教大神,我也卡在这里.fs是一个list.最后返回的也是fs.所以f1,f2都的值 都 应该是list啊.怎么会是list的中的一个数呢

报三春晖

#5 Created at ... [Delete] [Delete and Lock User]

仍然不能理解f1(),f2()为啥是分别代表list里的三个元素,请解作者!!!!

报三春晖

#6 Created at ... [Delete] [Delete and Lock User]

最后在万能的百度上找到了答案.为知为什么这里的人都没有提出这个问题.可能是我前面没学明白?

python 支持这种赋值方式

a,b,c=[1,2,3]

a,b,c=(1,2,3)

a,b,c=1,2,3

主要是python的赋值方式.前面的章节绝对没有讲解过.对小白的我产生了很大的困惑.

count函数运行完以后, fs = [f, f, f]

f1, f2, f3 = count() 相当于 [f1, f2, f3] = [f, f, f] 相当于 f1 = f f2 = f f3 = f f函数返回的是i的平方,i是3,所以返回9, 9, 9

多谢解答

SF半宅

#8 Created at ... [Delete] [Delete and Lock User]

非常感谢!

非常感谢楼上回答

非常感谢楼上回答


Reply