傳入函式中的參數

  • 不只在python這個程式語言,很多種語言都有類似的情況,每一種變數種類和結構在傳入函式後,都有兩種情況......
  • 變數傳入函式中跟原本是同一個,有list, dict, string…...
def fumction(list1):
    list1[0]+=1
    return
l = [1,2,3,4]
function(l)

print(l)

#output:
#[2,2,3,4]
  • 變數傳入函式中跟原本不是同一個,有int, float…...
def function(a):
    a+=1
    return
a = 1
function(a)

print(a)

#output:
#1
  • 簡單來說,可以想像成我們宣告的變數名稱不知道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
'''

results matching ""

    No results matching ""