文章详情页
python - 不理解函数作用域
浏览:130日期:2022-08-10 13:34:39
问题描述
def f(p, k): def g():print(k) if k == 0:f(g, 1) else:p()f(None, 0)
我觉得在f(None, 0)执行后,执行到f(g, 1)后k应该是1,但为什么执行还是0.
问题解答
回答1:这应该属于闭包,我们可以把这段函数改一下
def f(k): def g():print(k) return ga = 1x = f(a)a = 2x()# 打印出# 1
这样会不会更好理解一些呢可以看看这篇博客,他在底层说明了闭包的原理Python闭包详解
相关文章:
1. angular.js - 百度爬虫如何处理“#”符号?2. nosql - mongodb 多组数据不固定字段查询问题 [百度党请绕道]3. javascript - 跨域,我的jsonp方式对不,为什么一直报错啊4. css - angular前端如何让ng-repeat的内容并排一行,跑起来呢?5. css3怎么能做到弧形的运动轨迹6. angular.js - 调后台接口 返回数据同步到 scope 上的 service 怎么写?~7. 如何解决docker宿主机无法访问容器中的服务?8. javascript - 微信jssdk ios下自定义onMenuShareAppMessage 分享失效,Android分享成功9. 老师百度网盘分享一下WampServer的包啊,我们下载几kb要下载一天的.10. vue.js - linux下怎么使用vue-cli的vue命令
排行榜
