python的引用传递和值传递
2018-05-21 本文已影响1人
陆_志东
对于可变类型来说是引用传递
a = [1, 2, 3]
def changer_list(list1):
list1[0] += 1
return list1
print(changer_list(a)) # [2, 2, 3]
print(a) # [2, 2, 3]
对于不可变类型来说是值传递
a = 1
def changer_integer(num):
num += 1
return num
print(changer_integer(a)) # 2
print(a) # 1
将引用传递改为值传递的方式
import copy
b = [1, 2, 3]
def change_list(list1):
list1[0] += 1
return list1
print(change_list(copy.deepcopy(b))) # [2, 2, 3]
print(b) # [1, 2, 3]