不理解数列fs怎么成分开元素?

来源:8-8 Python的闭包

慕瓜3414965

2021-01-13 09:51

不理解数列fs怎么成分开元素?             

返回的fs是一个数列,但试了下可以用一个变量接收,也可以用和数列相同元素量的变量接收。如下: 

list=[1,2,3,4] 

c=list 

print(c)>>>[1, 2, 3, 4] 

 d1,d2,d3,d4=list 

print(d1,d2,d3,d4)>>>1 2 3 4 

 返回的是fs=[ f() , f() , f() ] ,也可以用 f1,12,f3 接收。

写回答 关注

3回答

  • 廖玉文_给力印
    2021-01-18 10:26:42

    这是python的拆包功能,对于list 和 tuple都可以这样拆包,可以百度‘python 拆包’

  • 慕瓜3414965
    2021-01-13 10:25:54

    python 闭包 在循环中定义函数,函数变量会直接引用循环变量(下面函数使用:def f(j):  和  def f(j=i): 都能正常执行,为什么j 默认会等于i 呢?)

    def count():

        fs=[]

        for i in range(1,4):

            #print('i=',i)

            #def f(j):

            def f(j=i):

                #print('j',j)

                def g():

                    return j*j

                return g

            r=f(i)

            fs.append(r)

        return fs

    f1,f2,f3=count()

    print(f1(),f2(),f3())


  • 慕瓜3414965
    2021-01-13 10:13:42

    def count():

        fs = []

        for i in range(1, 4):

            def f():

                 return i*i

            fs.append(f())

        return fs


    f1, f2, f3 = count()

    print(f1,f2,f3)

    f4=count()

    print(f4)




    def count():

        fs = []

        for i in range(1, 4):

            def f(j=i):

                 return j*j

            fs.append(f)

        return fs


    f1, f2, f3 = count()

    #print(f1,f2,f3)

    print(f1(),f2(),f3())




    def count():

        fs=[]

        for i in range(1,4):

            print('i=',i)

            #def f(j):

            def f(j=i):

                print('j',j)

                def g():

                    return j*j

                return g

            r=f(i)

            fs.append(r)

        return fs

    f1,f2,f3=count()

    print(f1(),f2(),f3())


Python3 进阶教程(新版)

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

41910 学习 · 236 问题

查看课程

相似问题