请解释Python的“传指针”的方法
- 论坛
- 请解释Python的“传指针”的方法
28 浏览
请解释Python的“传指针”的方法
这个问题已经有了答案:
a = 5
a并不直接存储值5,而只是存储值5所在对象的地址,这是正确的吗?因此它是一个引用变量。
b = a
现在我觉得,b
似乎不再存储 a
的地址,而是实际存储了 a
的\"值\",这个\"值\"是指对象5的地址。这不是 Python 进行按值传递的结果吗?
但我该如何理解这种表面上的不符呢?
谢谢!
admin 更改状态以发布 2023年5月21日
匿名的
0 Comments
不存在任何差异。
把赋值 a=5
理解为在数字 5 周围标记了一个名为'a'的标签。
现在,如果你设置 b=a
,python会查找被标记为 a
的内容(即5),并给它附上一个新标签叫做 b
。
赋值运算符从来不涉及变量名。它们总是追踪引用然后引用追踪到的值。
事实上,它的工作方式描述得不够准确,因为对于像int这样的简单数据类型,内存中不仅仅有一个数字5。但是你可以假装它就像这样运行,而且永远不会感到惊讶。
如果你使用列表而不是一个简单的整数,这更容易理解:
a = [1, 2, 3] b = a
只存在一个列表,现在 a
和 b
均指向它,这就解释了以下内容。
>>> b[0] = 5 >>> a [5, 2, 3]