登录

刚开始学Python,有一句看不懂。。。

# Python
巴扎黑 巴扎黑 2286 天前 540 次浏览

全部回复(6) 我要回复

  • PHP中文网

    PHP中文网2017-04-17 15:39:11

    a,b,c = [1,2,3] 你的count()函数返回的是这种的吧[1,2,3],然后a=1,b=2,c=3了,这是简化赋值

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 15:39:11

    这个是python的多指返回,count()函数返回的是一个函数的列表,列表的值有三个,分别是f(1), f(2), f(3),赋值给了对应的f1,f2,f3,然后print的时候执行了函数,得到的是1,4,9

    回复
    0
  • 黄舟

    黄舟2017-04-17 15:39:11

    count是上面那个函数
    f1, f2, f3 = count()是用三个变量接收函数返回的数组(直接接收数组中的元素了)

    回复
    0
  • 阿神

    阿神2017-04-17 15:39:11

    count()函数返回fs这个列表,这个列表本身包含三个item。

     f1, f2, f3 = count()
    

    表示对列表解包。等价于

    f1, f2, f3 = [1, 2, 3]
    

    即 ,f1 = 1, f2 = 2, f3 = 3

    原文的items是一些闭包函数。

    回复
    0
  • ringa_lee

    ringa_lee2017-04-17 15:39:11

    @sorashiro
    额,我也是新手一枚,看到这段代码,我也有一句看不懂的地方,求问:
    r = f(i) 这句代码,为什么没有执行f(j)函数呢?
    我跟着代码脑子里走了一遍得到的答案是print:1,16,81
    原因是我认为r = f(i)这句代码执行了f(j)函数,我在电脑里运行了一遍发现自己是错的,就不明白这里这句了:为什么r = f(i)没有执行f(j)函数呢?

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-17 15:39:11

    首先回答f1,f2,f3=count()是什么意思。因为count()函数返回的是一个列表,python允许你将列表赋给多个变量,只要列表长度跟变量数相等。
    其次,来讲为什么是1,4,9。这与函数的闭包有关,简单的讲是内部函数有记忆功能,它记住外部函数给它的参数。
    所以f1,f2,f3接收列表后并没有马上执行,等到f1(),f2(),f3()被调用后,它们都同时会去执行j*j。

    回复
    0
  • 取消 回复 发送