Python函數的參數數傳遞方式

在python中,參數的傳遞方式有兩種

  • 引用傳遞
    對於可變類型如列表,字典等,參數的傳遞時按引用傳遞的。
    eg:
def fun(data):
    data[0]=2
    print(data) #[2,2,3,4]
    print(id(data))

data1=[1,2,3,4]
fun(data1) #[2,2,3,4]
print(id(data1))
###輸出結果
[2, 2, 3, 4]
18026632  #data內存地址
18026632  #data1內存地址

可見,兩者的內存地址是一樣的,所以對於可變的數據類型,是按引用傳遞的,也就是說data1和data指向內存的同一塊地址。
  • 值傳遞
    相當於複製參數的值,這種傳遞的方式一般是對那些不可以改變的數據類型:字符串,元組,數字,集合等都是不可以改變的對象。
def fun(data):
    data='abc'
    print(id(data)) #次出輸入data的內存地址


data1='abcdefg'
fun(data1)
print(id(data1))

###輸出結果
16348528  
17220696
由此可見 參數個data和data1不在同一個內存上,即是參數傳遞時複製了一份。
發佈了42 篇原創文章 · 獲贊 26 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章