函数的参数是对象(列表、字典、类的对象),传参的时候传递的是地址,如果要对对象的内容进行修改,传参的时候传对象的拷贝
def func1(list1):
list1.append(10)
def func2(liest2):
list2.append(20)
list3 = [1,2,3]
func1(list3)
func2(list3)
print(func1)
print(func2)
结果:[1,2,3,10,20]
[1,2,3,10,20]
因为传递是地址,当修改的时候,直接修改的列表内容,避免这种情况,传值传递列表的拷贝
可以用 func1(list3[:]) func2(list3[:])
网友评论