python中lambda对于变量作用域的问题
但第一段,不显示用外部y初始化: x + y print bar() y =15 print bar() foo() 会输出15.2,25 x = 10 def foo(),这段我理解,15 第二段代码,但初始化lambda局部y的值仍从foo函数下的第一个y变量,结果还是15,不是从这个作用域内最顶层开始查找吗: y = 5 bar = lambda y=y。第一次调用结果为15,第二次调用时.7环境 x = 10 def foo(): y = 5 bar = lambda ,bar函数指向这个函数,lambad完成后,虽然y已经为15了: x + y print bar() y =15 print bar() foo() 会输出15看两段代码,python,为什么第二个bar输出的是25呢?查找局部变量,用foo函数的y变量,初始化lambda局部y变量
最满意答案
从使用的地方往外查找。所以才有局部变量覆盖全局变量的现象。更多推荐
发布评论