我刚刚开始学习和阅读有关 Python 的知识,并且在阅读本书的前几章时遇到了理解困难的问题。我在与翻译打交道时遇到了这个问题。
这是我的问题,为什么这两个表达式中的值不同。在第一个示例中,y
的值在更改 x
后保持不变,而在下一个示例中,当更改 x
时,它也会更改y
的值。
示例 1:
>>> x = 5
>>> y = x
>>> x += 1
>>> x
6
>>> y
5
示例:2
>>> x = [5]
>>> y = x
>>> x[0] = 6
>>> x
[6]
>>> y
[6]
关于 python 引用
.When
a = [2]
b = a
这里的a
和b
都引用了[2]
,可以通过id
查看/p>
>>>id(a)
3066750252L
>>>id(b)
3066750252L
两者都是相同的ID。所以a.append
或者b.append
都会影响a
和b
。也就是[2 ]
。这是在 mutable
对象的情况下。所以 a[0]=6
也会影响 b
。如果整数,它不会影响,因为 int
是 immutable
object.So
>>>a = 2
>>>id(a)
164911268
>>>a = a + 1
>>>a
3
>>>id(a)
164911256
这里 id
改变了。这意味着新的 int
对象被创建 3
。它现在被变量 a
引用>.
希望对你有帮助