文章詳情頁
python - 不理解函數(shù)作用域
瀏覽:128日期: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)執(zhí)行后,執(zhí)行到f(g, 1)后k應(yīng)該是1,但為什么執(zhí)行還是0.
問題解答
回答1:這應(yīng)該屬于閉包,我們可以把這段函數(shù)改一下
def f(k): def g():print(k) return ga = 1x = f(a)a = 2x()# 打印出# 1
這樣會不會更好理解一些呢可以看看這篇博客,他在底層說明了閉包的原理Python閉包詳解
相關(guān)文章:
1. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?2. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?3. docker start -a dockername 老是卡住,什么情況?4. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?5. docker gitlab 如何git clone?6. dockerfile - [docker build image失敗- npm install]7. docker不顯示端口映射呢?8. docker-compose 為何找不到配置文件?9. docker內(nèi)創(chuàng)建jenkins訪問另一個容器下的服務(wù)器問題10. 最新版本的PhpStudy支持64位的PHP嗎? 為什么我把64位的PHP放入后,后臺收不到POST
排行榜

熱門標(biāo)簽