📅  最后修改于: 2023-12-03 14:38:59.617000             🧑  作者: Mango
__sizeof__()
和 getsizeof()
方法之间的区别 - Python在Python中,我们可以使用__sizeof__()
和getsizeof()
方法来获得对象的大小,但是这两种方法有什么区别呢?
__sizeof__()
__sizeof__()
方法是Python中的一个特殊方法,用于返回对象的大小,返回值为整数类型,单位为字节。这里需要注意的是,这个方法返回的大小并不包含对象引用的大小。
下面是一个示例:
class MyClass:
pass
my_object = MyClass()
# 调用__sizeof__()方法
print(my_object.__sizeof__()) # 输出:56
从上面的示例可以看出,对象my_object
的大小为56
字节。
getsizeof()
getsizeof()
方法是Python的标准库中提供的一个函数,用于返回对象的大小,它会递归地计算对象引用的大小。返回值同样为整数类型,单位为字节。
下面是一个示例:
import sys
class MyClass:
pass
my_object = MyClass()
# 调用getsizeof()方法
print(sys.getsizeof(my_object)) # 输出:64
从上面的示例可以看出,getsizeof()
方法计算对象my_object
的大小为64
字节,比__sizeof__()
方法返回的大小要大。
__sizeof__()
方法返回的大小不包括对象引用的大小,而getsizeof()
方法会递归计算对象引用的大小。这是两种方法之间的主要区别。
因此,当我们需要计算对象实际大小时,应该使用getsizeof()
方法。