如何在 Python 中获取对象的大小

如何在 Python 中获取对象的大小

How to get the Size of an object in Python

使用该sys.getsizeof()方法获取对象的大小,例如
sys.getsizeof(my_object). 该方法接受一个对象参数并以字节为单位返回对象的大小。所有内置对象都可以传递给该
sys.getsizeof()方法。

主程序
import sys print(sys.getsizeof(['a', 'b', 'c'])) # 👉️ 80 print(sys.getsizeof(10 ** 10)) # 👉️ 32

sys.getsizeof方法以字节为单位
返回对象的大小。

该对象可以是任何类型的对象,所有内置对象都返回正确的结果。

对象的大小包括对象存储的数据、属性、方法等。

getsizeof方法只考虑对象的直接内存消耗,而不是它引用的对象的内存消耗。

请注意,某些 Python 对象(如列表和字典)可能会引用其他对象,而该getsizeof方法并未考虑到这一点。

官方文档中有一个
递归的 sizeof 配方getsizeof递归地使用查找对象的大小和它引用的对象。

getsizeof()方法调用__sizeof__对象的方法,因此它不处理未实现它的自定义对象。

您也可以getsizeof直接导入方法而不是导入整个sys模块。

主程序
from sys import getsizeof print(getsizeof(['a', 'b', 'c'])) # 👉️ 80 print(getsizeof(10 ** 10)) # 👉️ 32
The size of an object is implementation-dependent. Different flavors of Python may use different internal data structures which means they would produce different results.

The sys.getsizeof() method takes an optional second argument – a default value
to return if the object doesn’t provide means to retrieve the size.

If no default value is provided and the object’s size cannot be calculated, a
TypeError is raised.

Here are examples of passing different types of objects to the getsizeof
method.

main.py
from sys import getsizeof # 👇️ int print(getsizeof(0)) # 👉️ 24 # 👇️ float print(getsizeof(0.0)) # 👉️ 24 # 👇️ string print(getsizeof('')) # 👉️ 49 # 👇️ set print(getsizeof(set())) # 👉️ 216 # 👇️ tuple print(getsizeof(())) # 👉️ 40 # 👇️ list print(getsizeof([])) # 👉️ 56 # 👇️ dict print(getsizeof({})) # 👉️ 64 # 👇️ boolean print(getsizeof(True)) # 👉️ 28

Some objects like lists reserve space for more objects than they contain.

发表评论