求两个代码区别解释
请问下,两个代码为什么出来的结果不一样,第一个吧result=[]反正定义函数之前就可以正常,放在定义函数内就没有结果呢? 代码2中result是局部变量,每次调用都会重置为空列表[]放在函数外的 result 属于全局变量,而你若放在函数内部,属于局部变量,且每次递归过程都会重新生成新的 result 局部变量
在递归过程中的 result 变量相对于递归过程前的 result 变量属于局部变量,而递归过程前的相对于递归过程中的 result 变量可以视为 全局变量
所以若你放在函数内部,每次递归都是创建了新的 result 变量,导致了你每次 append 的都不是一个列表中,所以结果就自然不同,况且你递归过程返回的还不是 result
页:
[1]