return fs 返回的為什么是函數?不是返回的 list 嗎???
def?count(): ????fs?=?[] ????for?i?in?range(1,?4): ????????def?f(): ?????????????return?i*i ????????fs.append(f) ????return?fs f1,?f2,?f3?=?count()
原因就是當count()函數返回了3個函數時,這3個函數所引用的變量 i?的值已經變成了3。由于f1、f2、f3并沒有被調用,所以,此時他們并未計算 i*i,當 f1 被調用時:
2020-06-24
你可以試一下在函數中print fs,就可以看到確實是返回的列表,但是返回的數據不能用,因為用的是閉包的方法,所以只能用函數命名的方式才能把數據取出來(在需要用的時候),建議再把閉包看一遍,或者去找個小視頻看看 比如小甲魚
2020-06-18
def count():
fs = []
for i in range(1,4):
def f():
return i*i
fs.append(f())
return fs
這樣返回的是list