Python 中的递归函数每次函数自己调用时是否都会创建一个新的名称空间?


是的,函数调用(任何函数调用,不仅是递归函数)都会创建一个新的名称空间。但是,当作为参数给定时,对象会通过引用传递。

因此,新名称空间获得了此引用的副本,但它仍会引用调用函数中的相同对象,如果您更改该对象的​​内容,您会注意到调用函数中的更改。

更具体地说,每当解释器遇到对函数的调用时,它都会创建一个帧对象,该对象被推送到帧栈中。每次创建一个帧时,该帧都会获得自己的私有名称空间,其中帧中的每个变量都会重新定义。

更新于: 30-Jul-2019

132 次查看

开启您的 职业生涯

完成课程获得相应认证

入门
广告
© . All rights reserved.