python中lambda对于变量作用域的问题

编程入门 行业动态 更新时间:2024-10-20 05:47:23
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变量

最满意答案

从使用的地方往外查找。所以才有局部变量覆盖全局变量的现象。

更多推荐

本文发布于:2023-08-02 20:15:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1379589.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:变量   作用   python   lambda

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!