1. 程式人生 > >python a+= b和a=a+b什麼時候不同呢

python a+= b和a=a+b什麼時候不同呢

a=[100]
def test(num):
    num=num+num
    print(num)
test(a)
print(a)

此時輸出num=[100,100]  a=[100]    此時num=num+num  過程是先用[100]+[100]形成了一個臨時列表[100,100]然後賦值給num ,前提是num指向的a為可修改變數,然後才可以直接修改a的內容

a=[100]
def test(num):
    num+=num
    print(num)
test(a)
print(a)

a和num輸出都是[100,100]   此時num直接指向a  直接修改的是a  Python 中只要是賦值= 那麼必定是引用   即num為a的引用  此時num在運算的過程中分別指向了不同的物件  先是指向a的記憶體空間  後面是臨時[100,100]的記憶體空間