文章詳情頁
python - 不理解函數作用域
瀏覽:101日期: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容器呢SSH為什么連不通呢?2. docker網絡端口映射,沒有方便點的操作方法么?3. nignx - docker內nginx 80端口被占用4. angular.js - angular內容過長展開收起效果5. css - chrome瀏覽器input記錄上次cookie信息后,有個黃色背景~如何去除!6. docker綁定了nginx端口 外部訪問不到7. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?8. macos - mac下docker如何設置代理9. php - 第三方支付平臺在很短時間內多次異步通知,訂單多次確認收款10. 前端 - ng-view不能加載進模板
排行榜
