溫馨提示×

Python傳參與傳值有什么不同

小億
158
2023-11-15 09:08:16
欄目: 編程語言

在Python中,函數的參數傳遞方式可以分為傳值和傳引用兩種方式。

  1. 傳值(傳遞對象的副本):當向函數傳遞一個不可變對象(如整數、字符串、元組)時,會創建該對象的副本,并將副本傳遞給函數。在函數內部對參數進行修改不會影響到原始對象。

示例代碼:

def change_value(x):
    x = 10
    
num = 5
change_value(num)
print(num)  # 輸出 5

在上述代碼中,將變量num傳遞給change_value函數。在函數內部將參數x的值修改為10,但是并不會對原始對象num產生影響。

  1. 傳引用(傳遞對象的引用):當向函數傳遞可變對象(如列表、字典、集合)時,傳遞的是對象的引用(指針)。在函數內部對參數進行修改,會影響到原始對象。

示例代碼:

def change_list(lst):
    lst.append(4)
    
my_list = [1, 2, 3]
change_list(my_list)
print(my_list)  # 輸出 [1, 2, 3, 4]

在上述代碼中,將列表my_list傳遞給change_list函數。在函數內部通過append方法向參數lst所引用的列表添加元素4,導致原始列表也被修改。

總結:

  • 對于不可變對象,傳值方式會創建副本,函數內部的修改不會影響到原始對象。
  • 對于可變對象,傳引用方式直接傳遞引用,函數內部的修改會影響到原始對象。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女