详解sys.getsizeof()(获取对象的字节大小)函数的使用方法

  • Post category:Python

Python中sys.getsizeof()函数的作用与使用方法

简介

Python中的sys模块提供了一个能够获取对象占用的空间大小的函数 sys.getsizeof()。他能够返回对象占用的字节数,包括对象本身占用的空间和对象所引用的对象的空间。该函数不能保证完全精确地计算出对象占用的空间大小,但是该值与真实值相差不会太大。

使用方法

sys.getsizeof()函数的使用方法非常简单,只需要将需要计算空间大小的对象作为函数参数传入即可。例如:

import sys

a = '1234'
size = sys.getsizeof(a)
print(size)

上面的示例中,我们输出了一个字符串对象a所占用的字节数,结果为44(字节)。

除了常规的数据类型之外,该函数还可以计算容器类型的对象所占用的空间大小。例如,我们可以使用该函数计算一个列表所占用的空间大小:

import sys

a = [1, 2, 3, 4]
size = sys.getsizeof(a)
print(size)

输出结果为72,说明该列表占用了72个字节的空间。

实例说明

  1. 统计两个字符串占用的空间大小
import sys 

a = 'hello'
b = 'world'
size_a = sys.getsizeof(a)
size_b = sys.getsizeof(b)

print(f"The size of string a is {size_a}")
print(f"The size of string b is {size_b}")

输出结果:

The size of string a is 54
The size of string b is 56

该示例中,我们分别统计了两个字符串对象a和b所占用的字节数。通过输出结果,我们可以看到,虽然a和b的长度相同,但是它们所占用的空间大小并不相同。

  1. 统计一个字典类型对象所占用的空间大小
import sys 

d = {'name': 'Tom', 'age': 18, 'gender': 'male'}
size_d = sys.getsizeof(d)

print(f"The size of dictionary d is {size_d}")

输出结果:

The size of dictionary d is 240

该示例中,我们统计了一个字典类型对象d所占用的字节数。通过输出结果,我们可以看到,字典类型对象所占用的空间大小相对于其他数据类型来说更大,这点需要特别注意。