本文实例讲述了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实现计算对象的内存大小示例相关推荐

  1. python过去日期_利用python获取当前日期前后N天或N月日期的方法示例

    前言 最近因为工作原因,发现一个Python的时间组件,很好用分享出来!(忘记作者名字了,在这里先感谢了),下面话不多说,来一起看看详细的介绍吧. 示例代码: # -*- coding: utf-8 ...

  2. python内置对象的实现_Python 内置对象的实现

    准备回顾一下python源代码,不过不准备说的太细,尽量勾勒框架,不引用代码. python中所有东西都是对象,进一步地,这些对象可以分为类型对象(type)or实例对象,有时一个对象即可以是类型,也 ...

  3. python可迭代对象 迭代器生成器_Python可迭代对象、迭代器和生成器

    8.1 可迭代对象(Iterable) 大部分对象都是可迭代,只要实现了__iter__方法的对象就是可迭代的. __iter__方法会返回迭代器(iterator)本身,例如: >>&g ...

  4. python中不可迭代对象有哪些_python可迭代对象

    本身实现了迭代方法的对象称之为可迭代对象,可迭代对象特点: 支持每次返回自己所包含的一个成员的对象: 对象实现了 __iter__ 方法: 所有数据结构都是可迭代对象: for 循环要求对象必须是一个 ...

  5. python获取系统时间月份_python 取数组绝对值python获取当前日期

    今天群里一个人问了怎么获取当前时间的问题,以前接触过计算日期之差的,具体代码如下: import datetime d1=datetime.datetime(2014,3,14) d2=datetim ...

  6. python获取系统时间函数_Python常用时间操作总结【取得当前时间、时间函数、应用等】...

    本文实例讲述了Python常用时间操作.分享给大家供大家参考,具体如下: 我们先导入必须用到的一个module >>> import time 设置一个时间的格式,下面会用到 > ...

  7. python中迭代器和可迭代对象的区别_Python 可迭代对象迭代器生成器的区别

    生成器是一种特殊的迭代器,生成器自动实现了"迭代器协议"(即__iter__和next方法),不需要再手动实现两方法. 首先从字面意思来解释Iterable和Iterator的区别 ...

  8. python迭代对象有哪些_Python可迭代对象操作示例

    本文实例讲述了Python可迭代对象.分享给大家供大家参考,具体如下: 1.列表生成式 list = [result for x in range(m, n)] g1 = (i for i in ra ...

  9. python获取某文件路径_Python获取当前文件路径

    一. Python 获取当前文件路径方法 2. sys.path[0] 获取文件当前工作目录路径(绝对路径) sys.argv[0]|获得模块所在的路径(由系统决定是否是全名) 若显示调用python ...

最新文章

  1. Java基础入门语法和安装
  2. ctrl+shift+l指定选择 vscode_6.PYTHON开发利器之VS Code常用配置介绍
  3. [开源].NET数据库访问框架Chloe.ORM
  4. Python3 安装PyMySQL
  5. 【渝粤题库】国家开放大学2021春1026西方经济学(本)题目
  6. source insight常用命令--实际使用中比较常用的
  7. Android播放c4d工程文件方法,安卓播放网络视频怎么实现?
  8. 【数据库】MS SQL SERVER数据库日志压缩方法
  9. 训练营四教官打死网瘾少年案今开庭审理
  10. Android自定义控件开发入门与实战(7)SVG动画,android底层架构
  11. subscript on non-array or too many dimensions
  12. vue 视频 时间进度条组件-使用npm组件
  13. 值得收藏的22个搜索下载免费PDF电子书的网站
  14. dede 留言簿 多个
  15. 受害者被锤 法官遭殃 背后的它公关赢了?
  16. 怎么把信息秒回做到极致?IMO班聊也是拼了
  17. 《最优状态估计-卡尔曼,H∞及非线性滤波》:第10章 有关卡尔曼滤波的其他讨论
  18. 对于编码器与解码器的理解
  19. 彩色星球科技冠名著名钢琴艺术家吴牧野世界巡演《肖邦圆舞曲全集》长沙站演出...
  20. 互联网日报 | iPhone 12系列手机正式发布;盒马入局火锅市场;东风汽车A股IPO申请获受理...

热门文章

  1. 【slowfast 减少ava数据集】将ava数据集缩小到2个,对数据集做训练,然后进行检测,为训练自己的数据集做准备
  2. 安卓逆向之基于Xposed-ZjDroid脱壳 逆向分析(脱壳)
  3. Git本地缓存问题 修改密码后git无法拉取
  4. 可汗学院统计学笔记 42-81集
  5. mysql怎样实现先判断后联合_MYSQ创建联合索引,字段的先后顺序,对查询的影响分析...
  6. oracle报28003,【翻译自mos文章】运行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误...
  7. python安装rarfile模块_python windows下安装pip及rarfile
  8. Win7电脑设置定时关机的操作方法
  9. IE或Chrome浏览器玩Xbox游戏能实现吗
  10. 重装系统win10提示磁盘布局不受UEFI固件支持怎么办