文章詳情頁
python - 不理解函數作用域
瀏覽:192日期: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 - immutable配合react提升性能?2. javascript - sublime快鍵鍵問題3. phpstudy8.1支持win11系統嗎?4. 配置Apache時,添加對PHP的支持時語法錯誤5. vue.js - Vue 如何像Angular.js watch 一樣監聽數據變化6. css - 寫頁面遇到個布局問題,求大佬們幫解答,在線等,急!~7. 實現bing搜索工具urlAPI提交8. javascript - nodejs關于進程間發送句柄的一點疑問9. Apache 已經把網站根目錄的改為allow from all了,但是服務器還是不能訪問?10. javascript - 移動端上不能實現拖拽布局嗎?
排行榜

網公網安備