def getrecsizeof(o, seen=None):
if seen is None:
seen = set()
if id(o) in seen:
return 0
seen.add(id(o))
c = sys.getsizeof(o)
if isinstance(o, dict):
for k, v in o.items():
c += getrecsizeof(k, seen)
c += getrecsizeof(v, seen)
elif isinstance(o, str) or isinstance(o, bytes):
pass
elif isinstance(o, collections.Iterable):
for e in o:
c += getrecsizeof(e, seen)
return c
评论列表
文章目录