返回不是太理解
def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count()
在执行完f1,f2,f3 = count()后,f1,f2,f3为啥对应的是fs列表的三个值,而不是f1,f2,f3分别对应fs整个列表呢?
def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count()
在执行完f1,f2,f3 = count()后,f1,f2,f3为啥对应的是fs列表的三个值,而不是f1,f2,f3分别对应fs整个列表呢?
2018-12-03
def count():
fs = []
for i in range(1, 4):
def f(i):
return i*i
fs.append(f(i))
return fs
f1 = count()#返回的列表中是【1,4,9】
print (f1) #此处不可用f1(),因为是列表,列表不能像函数一样调用
f2 = count()#返回的列表中是【1,4,9】
print (f2)
f3 = count()#返回的列表中是【1,4,9】
print (f3)
f1, f2, f3 = count()#返回的是一个列表【1,4,9】
print (f1, f2, f3)#列表中的3个元素依次被打印出来1,4,9
##f1, f2, f3 = count(),此处只返回了1个列表,列表中的元素依次是f1,f2,f3,即【1,4,9】!所以上面的print (f1, f2, f3)代表print(fs[0] ,fs[1], fs[2])
##与f1 = count(),f2 = count(),f3 = count()意思不同,这代表着分别返回3个列表,三个列表都是【1,4,9】
def count():
fs = []
for i in range(1, 4):
def f(i):
return i*i
fs.append(f)
return fs
f1 = count()#返回的列表中是三个f的地址,因为for中循环了3次
print (f1) #此出不可用f1(),因为是列表,列表不能想函数一样调用
举报