如何调用list(Case 1
)的属性,使print y
的输出与Case 2
不同?你知道吗
# Case 1: using a list as value
>>> x = ["one", "two", "three"]
>>> y = x
>>> x[0] = "four"
>>> print x
["four", "two", "three"]
>>> print y
["four", "two", "three"]
# Case 2: using an integer as value
>>> x = 3
>>> y = x
>>> x = x + 1
>>> print x
4
>>> print y
3
编辑:
为了说明此行为与列表是可变的和字符串不是可变的无关,可以使用以下情况代替案例2:
>>> x = ["one", "two", "three"]
>>> y = x
>>> x = x + ["four", "five"]
>>> print x
["four", "two", "three", "four", "five"]
>>> print y
["four", "two", "three"]
两个片段之间的关键区别是
与
在第一种情况下,修改现有对象,在第二种情况下创建新对象。所以第一个代码段有一个对象和两个名称,x和y,在第二个代码段中有两个对象。注意,这与列表的可变性无关(与int的不可变性),您可以将第二个代码段编写为
得到基本相同的结果(=两个不同的物体)。你知道吗
相关问题 更多 >
编程相关推荐