Python - AI 助手

Python sys.getsizeof() 方法



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

此方法接受一个参数,即要测量其大小的对象,以及一个可选的默认参数,如果对象不支持大小检索则返回该参数。

需要注意的是,`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 Tutorialspoint!"

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
python_modules.htm
广告
© . All rights reserved.