for的循环注意事项
funcs = [] for i in range(10): funcs.append(lambda: print(i)) funcs[2]()这段代码的运行结果是9。个人猜想生成lambda函数的时候“i”变量的指针被传入其中,而i变量又随着for循环的迭代而变化,因此最后生成的函数实际上都是一样的(内存地址不同,运行结果相同)。但实际上我也不能完全解释清楚整个过程(绝对
funcs = [] for i in range(10): funcs.append(lambda: print(i)) funcs[2]()这段代码的运行结果是9。个人猜想生成lambda函数的时候“i”变量的指针被传入其中,而i变量又随着for循环的迭代而变化,因此最后生成的函数实际上都是一样的(内存地址不同,运行结果相同)。但实际上我也不能完全解释清楚整个过程(绝对