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了