python获取对象的大小_Python实现计算对象的内存大小示例
本文實例講述了Python實現計算對象的內存大小。分享給大家供大家參考,具體如下:
一般的sys.getsizeof()顯示不了復雜的字典。
查看類中的內容:
def dump(obj):
for attr in dir(obj):#dir顯示類的所有方法
print(" obj.%s = %r" % (attr, getattr(obj, attr)))
這里用遞歸調用所有對象的getsizeof:
def get_size(obj, seen=None):
# From https://goshippo.com/blog/measure-real-size-any-python-object/
# Recursively finds size of objects
size = sys.getsizeof(obj)
if seen is None:
seen = set()
obj_id = id(obj)
if obj_id in seen:
return 0
# Important mark as seen *before* entering recursion to gracefully handle
# self-referential objects
seen.add(obj_id)
if isinstance(obj, dict):
size += sum([get_size(v, seen) for v in obj.values()])
size += sum([get_size(k, seen) for k in obj.keys()])
elif hasattr(obj, '__dict__'):
size += get_size(obj.__dict__, seen)
elif hasattr(obj, '__iter__') and not isinstance(obj, (str, bytes, bytearray)):
size += sum([get_size(i, seen) for i in obj])
return size
希望本文所述對大家Python程序設計有所幫助。
總結
以上是生活随笔為你收集整理的python获取对象的大小_Python实现计算对象的内存大小示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 验证码图片显示不出来怎么办_pr 的蒙版
- 下一篇: idea怎么给项目改名_微软改名部惹祸了