我在 C 方面有一些经验,但在理解 Python 处理名称(标识符)的方式时遇到了一些麻烦。据我了解,声明一个列表x = [1, 2]
,然后声明一个新标签y = x
,我似乎实际上是在制作x
指针,并且y
,也是一个指针,与 x 拥有相同的地址。但在 Python 中,我们称之为标签(这些是不同的概念?)。
相同的系统发生在:x = 5
和y = x
。wherex
现在是一个整数的标签5
, 和y
也是一个标签5
。但现在当我改变x
它原来y
不会改变。所以在后一种情况下,我不认为x
或y
在这个意义上是指针。x
和y
在堆栈上而不是在堆上?如果是这样,我怎么知道它们是哪一个?在这种情况下应用堆栈和堆的知识是没有用的,甚至可能有害吗?我对这部分语言真的很困惑,谢谢你的帮助。