gpt4 book ai didi

python - 为什么 Python 中的列表参数表现得像 ByRef?

转载 作者:太空宇宙 更新时间:2023-11-04 06:53:49 24 4
gpt4 key购买 nike

这可能适用于一般的大多数语言,但我不确定。我是 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.

由于您拥有引用的副本,因此对该引用所指向的内容进行的任何操作都将如同您持有原始引用本身一样。

关于python - 为什么 Python 中的列表参数表现得像 ByRef?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com