文章详情页
python - 不理解函数作用域
浏览:231日期: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. docker不显示端口映射呢?2. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?3. docker api 开发的端口怎么获取?4. Hbuilder中的phpMyAdmin访问题5. Docker for Mac 创建的dnsmasq容器连不上/不工作的问题6. 前端 - 类到底该如何去命名 .newsList 这种的命名难道真的不是过度语义化吗?~7. golang - 用IDE看docker源码时的小问题8. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?9. docker start -a dockername 老是卡住,什么情况?10. docker容器呢SSH为什么连不通呢?
排行榜

网公网安备