为什么python不返回引用?
我有一个关于Python如何返回值的问题。 下面是我练习递归函数的简单python代码 def支架(ans、n、cur、打开、关闭): 如果len(cur)==n*2:为什么python不返回引用?,python,call-by-value,Python,Call By Value,我有一个关于Python如何返回值的问题。 下面是我练习递归函数的简单python代码 def支架(ans、n、cur、打开、关闭): 如果len(cur)==n*2: ans.append(cur)#这是因为变量范围。函数括号内的变量与函数外的变量不同,即使它们具有相同的名称(ans)。这可能会对您有所帮助。如果cur的长度不是n*2,则方括号()函数不会返回任何值。老实说,要知道它应该返回什么并不容易,因为您还没有发布一些预期的结果。也就是说,这里有一些选择: 始终返回递归调用的值: if
ans.append(cur)#这是因为变量范围。函数
括号内的变量与函数外的变量不同,即使它们具有相同的名称(ans
)。这可能会对您有所帮助。如果cur
的长度不是n*2
,则方括号()
函数不会返回任何值。老实说,要知道它应该返回什么并不容易,因为您还没有发布一些预期的结果。也就是说,这里有一些选择:
始终返回递归调用的值:
if open < n:
return brackets(ans, n,cur+"(",open+1,close)
if open > close:
return brackets(ans, n,cur+")",open,close+1)
或
在函数末尾返回ans
:
return ans
这将是输出:
['(())', '()()']
['(())', '()()']
['(())', '()()']
['(())', '()()']