li = []
for x in range(10):
print(x) //在函數沒有執行前(li[0]()),for 循環中x已經執行完,x會一直為 9
def fun():
print(x) //一直為 9 ,fun函數在for循環中是沒有被調用的
return x
li.append(fun)
print(li[0]()) //9
li = [lambda :x for x in range(10)]
print(type(li)) #<class 'list'>
print(type(li[0])) #<class 'function'>
for i in li:
print(i()) #結果是一直為 9
解析:
li = [lambda :x for x in range(10)]
變成函數:
li = []
for x in range(10):
def fun(): #lambda中沒有定義參數
return x
li.append(fun) #當函數還沒有運行的時候,x已經為9了
