0

在 Python 中,当两个变量分别由相同的值分配时,为什么会引用同一个对象,就像这个例子一样?

例子 :

>>> x = 5
>>> y = 5
>>> x is y
>>> True
4

1 回答 1

0

首先,必须了解 Python 的一个基本概念,即 Python 中的一切都是对象。

因此,在这种情况下,在内存中,Python 有多个 Integer 对象,称为 PyIntObject,它们是 C 结构。Python 在运行时,会提前为一些整数对象分配内存。

所以在你的脚本中,当你使用一个新的整数值时,在你的情况下x = 5,Python 会找到一个空闲的整数对象块并将值 5 分配给它。但是,当您再次使用相同的整数值时,Python 知道它已经有一个具有该值的对象,因此它将指向同一个对象x。这就是为什么x is y返回True

如果您想了解有关此内容的更多信息,请阅读以下页面: https ://www.laurentluce.com/posts/python-integer-objects-implementation/

于 2019-08-03T12:32:33.247 回答