1. 當變量a是不可變類型資料時,a += a與 a = a + a的輸出一緻,變量a在函數内部的變化不會影響函數外全局變量a的值。
<code>a </code><code>=</code> <code>10</code>
<code>def</code> <code>sum_a(a):</code>
<code> </code><code>a </code><code>+</code><code>=</code> <code>a</code>
<code> </code><code>print</code><code>(a)</code>
<code>sum_a(a)</code>
<code>print</code><code>(a)</code>
<code>print</code><code>(</code><code>'-'</code><code>*</code><code>20</code><code>)</code>
<code>def</code> <code>sum_b(a):</code>
<code> </code><code>a </code><code>=</code> <code>a </code><code>+</code> <code>a</code>
<code>sum_b(a)</code>
<code>輸出:</code>
<code>20</code>
<code>10</code>
<code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code><code>-</code>
2. 當變量a是可變類型資料時,在函數中,a+=a不等于a=a+a!
a+=a是在全局變量a的記憶體位址上進行修改;而a=a+a是定義一個局部變量a,将a+a的值賦予它,全局變量a的值不變
<code>a </code><code>=</code> <code>[</code><code>11</code><code>, </code><code>22</code><code>]</code>
<code>[</code><code>11</code><code>, </code><code>22</code><code>, </code><code>11</code><code>, </code><code>22</code><code>]</code>
<code>[</code><code>11</code><code>, </code><code>22</code><code>]</code>
本文轉自戴柏陽的部落格部落格51CTO部落格,原文連結http://blog.51cto.com/daibaiyang119/1928787如需轉載請自行聯系原作者
daibaiyang119