Python sys.getsizeof() 方法



Python sys.getsizeof() 方法返回 Python 对象的大小(以字节为单位)。这包括对象的内容和开销。它主要用于内存分析和调试,以了解对象消耗了多少内存。

此方法采用一个参数,即要测量其大小的对象,以及一个可选的 default 参数(如果对象不支持大小检索),则返回该参数。

我们必须注意,sys.getsizeof() 方法不考虑被引用对象的大小,只考虑给定对象的直接大小。

语法

以下是 Python sys.getsizeof() 方法的语法和参数 -


 sys.getsizeof(object[, default])

参数

以下是 python sys.getsizeof() 方法的参数 -

  • object:要确定其大小的对象。
  • default(可选):如果对象未提供 __sizeof__ 方法,并且提供了此参数,则将其作为大小返回。否则会引发 TypeError。

返回值

此方法返回对象的大小(以字节为单位)

示例 1

以下示例显示了整数、浮点数和字符串的大小 -


import sys

x = 42
y = 3.14
s = "Hello, Welcome to qikepu!"

print(sys.getsizeof(x)) 	
print(sys.getsizeof(y)) 	
print(sys.getsizeof(s)) 	 	

输出

28
24
82

注意:确切的大小可能因 Python 实现和平台而异。

示例 2

此示例显示了添加元素之前和之后的列表大小。由于列表的动态数组结构,大小会随着元素的添加而增加 -


import sys

lst = [1, 2, 3, 4, 5]
print(sys.getsizeof(lst)) 	

# Adding element to list
lst.append(6)
print(sys.getsizeof(lst)) 	

输出

104
104

示例 3

此示例显示了自定义对象的大小。sys.getsizeof() 方法仅提供对象本身的大小,而不是它引用的对象的大小 -


import sys

class MyClass:
	 	 def __init__(self):
	 	 	 	 self.x = 1
	 	 	 	 self.y = [1, 2, 3]

obj = MyClass()
print(sys.getsizeof(obj))

输出

56

示例 4

此示例指定在对象未提供大小信息时返回的默认大小值 -


import sys

class MyClass:
	 	def __init__(self):
	 	 	 self.x = 1

# Default size if no size information is available
print(sys.getsizeof(MyClass, default=100))

输出

1072