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个字节的空间。
实例说明
- 统计两个字符串占用的空间大小
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的长度相同,但是它们所占用的空间大小并不相同。
- 统计一个字典类型对象所占用的空间大小
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所占用的字节数。通过输出结果,我们可以看到,字典类型对象所占用的空间大小相对于其他数据类型来说更大,这点需要特别注意。