傳入函式中的參數
- 不只在python這個程式語言,很多種語言都有類似的情況,每一種變數種類和結構在傳入函式後,都有兩種情況......
- 變數傳入函式中跟原本是同一個,有list, dict, string…...
def fumction(list1):
list1[0]+=1
return
l = [1,2,3,4]
function(l)
print(l)
- 變數傳入函式中跟原本不是同一個,有int, float…...
def function(a):
a+=1
return
a = 1
function(a)
print(a)
- 簡單來說,可以想像成我們宣告的變數名稱不知道list裡面有多少東西,所以list的變數名稱,只是指到list的開頭來代表整個list.
- 所以當我們把一個list傳到一個函數裡面時,傳入的只能代表list在程式中的位置,指到的都是同一個list
好用工具id
- id可以知道某一個變數在程式中的實際位置,同一個變數id出來的值就會一樣
def list_test(my_list):
my_list[0]+=1
print('list in function : {}'.format(id(my_list)))
return
def int_test(my_int):
my_int+=1
print('int in function : {}'.format(id(my_int)))
return
l = [1,2,3,4]
a = 1
print('list outside : {}'.format(id(l)))
print('int outside : {}'.format(id(a)))
list_test(l)
int_test(a)
'''output:
list outside : 4521979336
int outside : 4518046320
list in function : 4521979336
int in function : 4518046352
'''