每次函数调用自身时,Python中的递归函数都会创建一个新的名称空间吗?
是的,函数调用(任何函数调用,而不仅仅是递归函数)都会创建一个新的命名空间。但是,当作为参数给出时,对象通过引用传递。
因此,新命名空间获得了此引用的自己的副本,但它仍引用与调用函数中相同的对象,并且,如果您更改该对象的内容,则会注意到调用函数中的更改。
更具体地说,每当解释器遇到函数调用时,它都会创建一个框架对象,该对象将被推送到框架堆栈。每次创建框架时,都会为该框架提供其自己的私有命名空间,该框架中的每个变量都将在此重新定义。
以上是 每次函数调用自身时,Python中的递归函数都会创建一个新的名称空间吗? 的全部内容, 来源链接: utcz.com/z/326800.html