文章詳情頁
python - 不理解函數作用域
瀏覽:155日期: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. macos - 無法source activate python272. 我在導入模板資源時遇到無法顯示的問題,請老師解答下3. MySQL中無法修改字段名的疑問4. css3 讓圖片變成灰色(filter),但針對IE11瀏覽器無效5. 運行python程序時出現“應用程序發生異常”的內存錯誤?6. html5 - 前端面試碰到了一個緩存數據的問題,來論壇上請教一下7. PHPExcel表格導入數據庫怎么導入8. html - 網頁的a標簽到底要不要寫上域名?9. css - 移動端 盒子內加overflow-y:scroll后 字體會變大10. javascript - react如何獲取offsetX?
排行榜

網公網安備