Python里面如何查看对象所占用的内存?这里我们需要使用到Python内置的sys模块,sys模块负责程序与Python解释器的交互,提供了一系列的函数和变量,用于控制Python的运行时环境。

查看对象占用内存字节大小使用到sys模块的getsizeof()方法。

打开网易新闻 查看精彩图片

从上面代码中可以看出:

1.getsizeof方法可计算对象所占用内存字节数

2.getsizeof方法只计算对象直接占用的内存,而不计算对象内所引用对象的内存

空对象并不“空”

在Python里面有个None表示什么都不是,大家是否好奇过这个None到底是什么?其实None也是一个对象,其类型为NoneType。我们所熟知空对象还有空字符串,空列表,空字典,空元组。当程序创建一个空对象时,这个空对象是否占用内存呢?

打开网易新闻 查看精彩图片

虽然都是空对象,但是这些对象在内存分配上并不为“空”。

天啊!空对象居然占用内存,为什么会这样呢?

除了None对象外,其他空对象都是容器,可以理解为创建这个容器本身就需要占用一定的内存,还有一部分内存是对象在初始化的时候预分配。这就是我们看到的空对象也占用这么大内存原因。