擅长:python、mysql、java
<p>这个问题可能与列表和元组之间的差异有关。在fun2中,不要在a、b两边加括号。
在fun2a中,返回两个对象的元组,而不是一个列表。Python应该正确地编写变量,如果这是您试图解决的问题的话。
另外,当b从未定义时,您使用参数b调用fun2。当然,fun2的参数从来没有实际使用过,因为它是在读取之前重写的。在</p>
<p>最后,您的代码应该如下所示:</p>
<pre><code>def fun1a(tmp):
tmp.append(3)
tmp.append(2)
tmp.append(1)
return True
def fun1(a):
b = fun1a(a)
print a #prints [3,2,1]
return b
def fun2a():
tmp = []
tmp.append(3)
tmp.append(2)
tmp.append(1)
return (True, tmp)
def fun2():
b, a = fun2a()
print a #prints [3,2,1]
return b
def main():
a=[]
if fun1(a):
print a #prints [3,2,1]
if fun2():
print b #prints garbage, e.g. (0,1)
</code></pre>
<p>它应该同时打印[3,2,1]。在</p>