Aus*_*tin 1 python reference object-reference argument-passing
这可能适用于大多数语言,但我不确定.我是Python的初学者,一直致力于C#和VB中的列表副本.但是在Python中,只要我将列表作为参数传递并通过使用"for i in range"进行枚举,然后更改list参数的值,输入值实际上会更改原始列表.我认为Python应该默认按值传递参数,这样一旦函数完成,我仍然会在调用函数之前得到原始值.我错过了什么?谢谢!
Python确实按值传递参数,但是您接收的值是引用的副本(顺便说一句,这与C#,VB.NET和Java的行为完全相同).
这是要记住的重要事项:
对象不通过引用传递 - 对象引用按值传递.
由于您有一个引用的副本,因此对该引用所指向的任何操作就像您自己持有原始引用一样.
| 归档时间: |
|
| 查看次数: |
1091 次 |
| 最近记录: |