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
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
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