标签:highlight pre nbsp return int range lam function 定义
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了
python易错题之lambda 以及 for循环中内嵌函数
标签:highlight pre nbsp return int range lam function 定义
原文地址:https://www.cnblogs.com/yanxiaoge/p/10557623.html