擅长:python、mysql、java
<p>我想澄清一些误传。这实际上与“int是不可变的”这一事实无关。当你写<code>a = 2</code>的时候,你将<code>a</code>和<code>a</code>单独分配给不同的东西——它对<code>b</code>和<code>c</code>没有影响。</p>
<p>但是,如果要修改<code>a</code>的<em>属性</em>,则它将<em>影响<code>b</code>和<code>c</code>。希望这个例子能更好地说明我所说的:</p>
<pre><code>>>> a = b = c = [1] # assign everyone to the same object
>>> a, b, c
([1], [1], [1])
>>> a[0] = 2 # modify a member of a
>>> a, b, c
([2], [2], [2]) # everyone gets updated because they all refer to the same object
>>> a = [3] # assign a to a new object
>>> a, b, c
([3], [2], [2]) # b and c are not affected
</code></pre>