def _get_size(item, seen):
known_types = {dict: lambda d: chain.from_iterable(d.items())}
default_size = getsizeof(0)
def size_walk(item):
if id(item) in seen:
return 0
seen.add(id(item))
s = getsizeof(item, default_size)
for _type, fun in known_types.iteritems():
if isinstance(item, _type):
s += sum(map(size_walk, fun(item)))
break
return s
return size_walk(item)
评论列表
文章目录