a = 100
def add(num):
num+=num
print num
add(a)
print a
a = [100]
def add(num):
num+=num #注意不是num = num + num
print num
add(a)
print a
問上面兩種情況的輸出分別是什麼?
1是200,100
2是[100,100],[100,100]
兩個裏面穿進去的都是地址,第一個做修改的時候發現傳進來的是不可修改變量,第二個傳進去的是可修改變量,所以直接做修改
不可修改變量類型:str,int,float,tuple
可修改變量類型:list,dict
3
a = [100]
def add(num):
num = num + num
print num
add(a)
print a
但是這種時候,輸出結果是[100,100],[100]
原因是num+=num和num=num+num不同,前面是修改原來的num的值,後面這個是num+num賦值給變量num,所以需要看函數中是不是直接對變量修改