以下是我的测试代码。
测试1 :
def set(object):
object = [2,3]
a = [1,3]
set(a)
print a
输出 [1,3]
测试2 :
def set(object):
object[0] = 2
a = [1,3]
set(a)
print a
输出 [2,3]
对于测试2 ,我可以很清楚,因为a
是一个列表,它在python中传输引用。因此,当致电set(object)
时,object
是a
的引用。因此,a
会更改为[2,3]
。
但对于测试1 ,我还不太清楚。我认为答案是[2,3]
,但真正的答案是[1,3]
。谁能告诉我两个测试用例的区别?
答案 0 :(得分:0)
在第二个测试用例中,您试图改变现有列表,这样就可以了。
但是,在你的第一次测试中,你试图在变量a
上分配一个新的列表,但是你在函数范围内进行,而不是你应该返回object
并在{{{}}中接收它。 1}}。
a