这可能适用于一般的大多数语言,但我不确定。我是 Python 的初学者,一直在 C# 和 VB 中处理列表的副本。但在 Python 中,每当我将列表作为参数传递并通过使用“for i in range”进行枚举,然后更改列表参数的值时,输入值实际上会更改原始列表。我认为 Python 应该默认按值传递参数,这样一旦函数完成,我仍然拥有调用函数之前的原始值。我错过了什么?谢谢!
请您参考如下方法:
Python 确实按值传递参数,但您收到的值是引用的副本(顺便说一下,这与 C#、VB.NET 和 Java 的行为方式完全相同)。
重要的是要记住:
Objects are not passed by reference - object references are passed by value.
由于您拥有引用的副本,因此对该引用所指向的内容进行的任何操作都将如同您持有原始引用本身一样。
