文章详情页
python - 不理解函数作用域
浏览:118日期: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. javascript - 父级设置了相对定位。子元素设置了绝对定位。子元素中包含了浮动的table,这个时候高度不能自适应。2. javascript - vue异步数据打印问题3. javascript - js的string数据类型,这段表述是什么意思?4. Span标签5. docker容器呢SSH为什么连不通呢?6. docker api 开发的端口怎么获取?7. javascript - 表单ajax提交后跳转,手机按返回又进入这个表单页了!!8. golang - 用IDE看docker源码时的小问题9. docker start -a dockername 老是卡住,什么情况?10. dockerfile - 为什么docker容器启动不了?
排行榜
