请解释Python"传递指针"方法

时间:2018-03-16 20:16:00

标签: python variables pass-by-reference pass-by-value

a = 5

a不是持有值5本身而只是持有对象5的地址,对吗?所以它是一个参考变量。

b = a 

现在在我看来b,而不是再次持有a的地址,实际上是持有a的"value",这是对象的地址5. Isn& #39;这是Python传递值的结果吗?

但我应该如何理解这种明显的差异呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

没有差异。

将作业a=5视为标记标记' a'大约5点。

现在,如果设置b=a,python会查找标记为a(5)的内容,并为其附加新标签b

赋值运算符从不引用变量的名称。他们总是追逐参考,然后参考追逐的

事实上,它并没有像我描述的那样工作,因为对于像int这样的简单数据类型,内存中只有一个5的副本。但你可以行动就像它那样工作,并且不会感到惊讶。

如果使用列表而不是简单的整数,则更容易理解:

a = [1, 2, 3]
b = a

现有只有一个列表,ab现在都引用它,这解释了以下内容。

>>> b[0] = 5
>>> a
[5, 2, 3]