文章详情页
python - 不理解函数作用域
浏览:267日期: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. 利用百度地图API定位及附件商家信息服务2. html - 急求,能否用flex或者高端点的CSS来布局这个图呢?不想用浮动或定位了3. html5 - 只用CSS如何实现input框的宽度随框里输入的内容长短自动适应?4. android - 百度地图拖拽图标后原来位置的图标还在?5. 请教各位大佬,浏览器点 提交实例为什么没有反应6. 前端 - date属性的input文本框在微信上会出现奇怪的边框?7. javascript - 百度坐标,返回目标附近有哪些坐标8. PHP类中的$this9. javascript - 如图,百度首页,查看源代码为什么什么都没有?10. php - 淘宝订单拆单表设计
排行榜

网公网安备