如何防止在Python中将list作为函数形参时被实参修改?
- 内容介绍
- 文章标签
- 相关推荐
本文共计807个文字,预计阅读时间需要4分钟。
0. 摘要:我们将一个list传入函数后,函数内部对实参进行修改后,形参也会随之改变。本文将主要介绍这种错误的现状、原因和解决方法。
1. 代码示例:pythondef fun(inner_lst): inner_lst.pop() lst=[1, 2, 3, ]
0.摘要
我们将一个list传入函数后,函数内部对实参修改后,形参也会随之改变。本文将主要介绍这种错误的现象、原因和解决方法。
1.代码示例
def fun(inner_lst): inner_lst.pop() lst = [1,2,3,4,5,6,7] fun(lst) print(lst) fun(lst) print(lst) fun(lst) print(lst) fun(lst) print(lst) fun(lst) print(lst)
从运行结果上,可以看出,
虽然我们改变的是fun()内部的inner_lst,但是,外部的lst也随之改变了。
因此,如果我们将一个列表传入一个函数的,运行这个函数,可能会破坏我们的原始数据,这可能并不是我们想要看到的。
2.原因
首先,我们解释一下上面这种情况的原因。
本文共计807个文字,预计阅读时间需要4分钟。
0. 摘要:我们将一个list传入函数后,函数内部对实参进行修改后,形参也会随之改变。本文将主要介绍这种错误的现状、原因和解决方法。
1. 代码示例:pythondef fun(inner_lst): inner_lst.pop() lst=[1, 2, 3, ]
0.摘要
我们将一个list传入函数后,函数内部对实参修改后,形参也会随之改变。本文将主要介绍这种错误的现象、原因和解决方法。
1.代码示例
def fun(inner_lst): inner_lst.pop() lst = [1,2,3,4,5,6,7] fun(lst) print(lst) fun(lst) print(lst) fun(lst) print(lst) fun(lst) print(lst) fun(lst) print(lst)
从运行结果上,可以看出,
虽然我们改变的是fun()内部的inner_lst,但是,外部的lst也随之改变了。
因此,如果我们将一个列表传入一个函数的,运行这个函数,可能会破坏我们的原始数据,这可能并不是我们想要看到的。
2.原因
首先,我们解释一下上面这种情况的原因。

