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


是的,函式呼叫(任何函式呼叫,不僅是遞迴函式)都會建立一個新的名稱空間。但是,當作為引數給定時,物件會透過引用傳遞。

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

更具體地說,每當直譯器遇到對函式的呼叫時,它都會建立一個幀物件,該物件被推送到幀棧中。每次建立一個幀時,該幀都會獲得自己的私有名稱空間,其中幀中的每個變數都會重新定義。

更新於: 30-Jul-2019

132 次檢視

開啟您的 職業生涯

完成課程獲得相應認證

入門
廣告
© . All rights reserved.