Python 中的遞迴函式在每次呼叫自身時都會建立一個新的名稱空間嗎?


是的,函式呼叫(任何函式呼叫,不僅僅是遞迴呼叫)新建立一個名稱空間。但如果作為引數傳遞,OBJECTS將按引用傳遞。

因此,新名稱空間會獲取此引用的自己的副本,但它仍然引用呼叫函式中相同的物件,如果您更改該物件的內容,您會注意到呼叫函式中的更改。

具體來說,每當直譯器遇到一個函式呼叫時,它都會建立一個框架物件,此物件會被推入框架棧。每次建立框架時,該框架都會賦予其自己的私有名稱空間,其中重新定義框架中的每個變數。

更新於: 2019 年 7 月 30 日

132 次瀏覽

開啟您的 職業

完成本課程,獲得認證

開始學習
廣告
© . All rights reserved.