如何防止在Python中将list作为函数形参时被实参修改?

2026-05-25 03:160阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计807个文字,预计阅读时间需要4分钟。

如何防止在Python中将list作为函数形参时被实参修改?

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)

如何防止在Python中将list作为函数形参时被实参修改?

从运行结果上,可以看出,

虽然我们改变的是fun()内部的inner_lst,但是,外部的lst也随之改变了。

因此,如果我们将一个列表传入一个函数的,运行这个函数,可能会破坏我们的原始数据,这可能并不是我们想要看到的。

2.原因

首先,我们解释一下上面这种情况的原因。

阅读全文

本文共计807个文字,预计阅读时间需要4分钟。

如何防止在Python中将list作为函数形参时被实参修改?

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)

如何防止在Python中将list作为函数形参时被实参修改?

从运行结果上,可以看出,

虽然我们改变的是fun()内部的inner_lst,但是,外部的lst也随之改变了。

因此,如果我们将一个列表传入一个函数的,运行这个函数,可能会破坏我们的原始数据,这可能并不是我们想要看到的。

2.原因

首先,我们解释一下上面这种情况的原因。

阅读全文