我们来看看下面的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 中的任何对象都继承自 object
类,这意味着它被视为任何Python对象,而不是像你从C语言中期望的那样被视为一个基元值。这就是人们所说的 在Python中,所有的东西都是一个对象.
例如: int
类有一个方法 __str__
决定了它的字符串表示方式是什么样子的。
>>> a = 3
>>> a.__str__()
'3'
你可以使用 dir(a)
的方法的列表,以获取与 a
.
因此,回答你的问题,是的 - int
对象不仅为基元值本身分配了所需的空间,还为与之相关的整个 Python 对象分配了空间。
我不知道你在问什么,但你可以使用 type()
来检查一个对象或变量是什么类。
type(a)
OUTPUT:
<class 'int'>