a,b,c = [1,2,3] 你的count()函数返回的是这种的吧[1,2,3],然后a=1,b=2,c=3了,这是简化赋值
这个是python的多指返回,count()函数返回的是一个函数的列表,列表的值有三个,分别是f(1), f(2), f(3),赋值给了对应的f1,f2,f3,然后print的时候执行了函数,得到的是1,4,9
count是上面那个函数f1, f2, f3 = count()是用三个变量接收函数返回的数组(直接接收数组中的元素了)
count
f1, f2, f3 = count()
count()函数返回fs这个列表,这个列表本身包含三个item。
表示对列表解包。等价于
f1, f2, f3 = [1, 2, 3]
即 ,f1 = 1, f2 = 2, f3 = 3
f1 = 1
f2 = 2
f3 = 3
原文的items是一些闭包函数。
@sorashiro 额,我也是新手一枚,看到这段代码,我也有一句看不懂的地方,求问: r = f(i) 这句代码,为什么没有执行f(j)函数呢? 我跟着代码脑子里走了一遍得到的答案是print:1,16,81 原因是我认为r = f(i)这句代码执行了f(j)函数,我在电脑里运行了一遍发现自己是错的,就不明白这里这句了:为什么r = f(i)没有执行f(j)函数呢?
首先回答f1,f2,f3=count()是什么意思。因为count()函数返回的是一个列表,python允许你将列表赋给多个变量,只要列表长度跟变量数相等。 其次,来讲为什么是1,4,9。这与函数的闭包有关,简单的讲是内部函数有记忆功能,它记住外部函数给它的参数。 所以f1,f2,f3接收列表后并没有马上执行,等到f1(),f2(),f3()被调用后,它们都同时会去执行j*j。
a,b,c = [1,2,3] 你的count()函数返回的是这种的吧[1,2,3],然后a=1,b=2,c=3了,这是简化赋值
这个是python的多指返回,count()函数返回的是一个函数的列表,列表的值有三个,分别是f(1), f(2), f(3),赋值给了对应的f1,f2,f3,然后print的时候执行了函数,得到的是1,4,9
count
是上面那个函数f1, f2, f3 = count()
是用三个变量接收函数返回的数组(直接接收数组中的元素了)count()函数返回fs这个列表,这个列表本身包含三个item。
表示对列表解包。等价于
即 ,
f1 = 1
,f2 = 2
,f3 = 3
原文的items是一些闭包函数。
@sorashiro
额,我也是新手一枚,看到这段代码,我也有一句看不懂的地方,求问:
r = f(i) 这句代码,为什么没有执行f(j)函数呢?
我跟着代码脑子里走了一遍得到的答案是print:1,16,81
原因是我认为r = f(i)这句代码执行了f(j)函数,我在电脑里运行了一遍发现自己是错的,就不明白这里这句了:为什么r = f(i)没有执行f(j)函数呢?
首先回答f1,f2,f3=count()是什么意思。因为count()函数返回的是一个列表,python允许你将列表赋给多个变量,只要列表长度跟变量数相等。
其次,来讲为什么是1,4,9。这与函数的闭包有关,简单的讲是内部函数有记忆功能,它记住外部函数给它的参数。
所以f1,f2,f3接收列表后并没有马上执行,等到f1(),f2(),f3()被调用后,它们都同时会去执行j*j。