Python 中的 'int' 对象只包含值吗?

Do the 'int' objects in Python only contain values?

让我们采用以下 Python 代码:

a = 3
print(a)

据我所知,a 是对 class int 对象的引用——如果我我错了。从图表上看,它应该看起来像这样,据我所知

    The object of 'int' class
       containing value 3

        |---|
a ----> | 3 |
        |---|

内存中的 'int' 对象是只包含值 3 还是包含一些 space 用于其他变量?

我们的教授告诉我们它看起来像下面这样:

   The object of class 'int'
        |--------|
        |   ___  |
a ----> |   |3|  |
        |   ---  |
        |--------|

那么,剩下的 space 是否被其他一些变量利用了?

我不确定你在问什么,但你可以使用 type() 来检查 class 一个对象或变量是什么:

type(a)

输出:

<class 'int'>

Python 中的任何对象都继承自 object class,这意味着它被视为任何 Python 对象,而不是像您那样被视为原始值期待像 C 这样的语言。这就是人们说 在 Python 中,一切都是对象 .

的意思

例如,int class 有一个方法 __str__ 指示其字符串表示形式:

>>> a = 3
>>> a.__str__()
'3'

您可以使用 dir(a) 获取与 a 关联的每个方法的列表。

所以回答你的问题,是的 - int 对象不仅分配原始值本身所需的 space,而且还分配与关联的整个 Python 对象它。