Python中的 "int "对象是否只包含值?

问题描述 投票:1回答:2

我们来看看下面的Python代码。

a = 3
print(a)

据我所知 a 的对象的引用。 - 如果我说错了,请纠正我。从图上看,它应该是这样的。据我所知.

    The object of 'int' class
       containing value 3

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

内存中的'int'对象是只包含3的值,还是也包含一些空间给其他变量?

我们的教授告诉我们,它看起来像下面的东西。

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

那么,剩余的空间是否被其他变量利用了?

python class object int
2个回答
1
投票

Python 中的任何对象都继承自 object 类,这意味着它被视为任何Python对象,而不是像你从C语言中期望的那样被视为一个基元值。这就是人们所说的 在Python中,所有的东西都是一个对象.

例如: int 类有一个方法 __str__ 决定了它的字符串表示方式是什么样子的。

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

你可以使用 dir(a) 的方法的列表,以获取与 a.

因此,回答你的问题,是的 - int 对象不仅为基元值本身分配了所需的空间,还为与之相关的整个 Python 对象分配了空间。


0
投票

我不知道你在问什么,但你可以使用 type() 来检查一个对象或变量是什么类。

type(a)

OUTPUT:

<class 'int'>
© www.soinside.com 2019 - 2024. All rights reserved.