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实现计算对象的内存大小示例相关推荐
- python过去日期_利用python获取当前日期前后N天或N月日期的方法示例
前言 最近因为工作原因,发现一个Python的时间组件,很好用分享出来!(忘记作者名字了,在这里先感谢了),下面话不多说,来一起看看详细的介绍吧. 示例代码: # -*- coding: utf-8 ...
- python内置对象的实现_Python 内置对象的实现
准备回顾一下python源代码,不过不准备说的太细,尽量勾勒框架,不引用代码. python中所有东西都是对象,进一步地,这些对象可以分为类型对象(type)or实例对象,有时一个对象即可以是类型,也 ...
- python可迭代对象 迭代器生成器_Python可迭代对象、迭代器和生成器
8.1 可迭代对象(Iterable) 大部分对象都是可迭代,只要实现了__iter__方法的对象就是可迭代的. __iter__方法会返回迭代器(iterator)本身,例如: >>&g ...
- python中不可迭代对象有哪些_python可迭代对象
本身实现了迭代方法的对象称之为可迭代对象,可迭代对象特点: 支持每次返回自己所包含的一个成员的对象: 对象实现了 __iter__ 方法: 所有数据结构都是可迭代对象: for 循环要求对象必须是一个 ...
- python获取系统时间月份_python 取数组绝对值python获取当前日期
今天群里一个人问了怎么获取当前时间的问题,以前接触过计算日期之差的,具体代码如下: import datetime d1=datetime.datetime(2014,3,14) d2=datetim ...
- python获取系统时间函数_Python常用时间操作总结【取得当前时间、时间函数、应用等】...
本文实例讲述了Python常用时间操作.分享给大家供大家参考,具体如下: 我们先导入必须用到的一个module >>> import time 设置一个时间的格式,下面会用到 > ...
- python中迭代器和可迭代对象的区别_Python 可迭代对象迭代器生成器的区别
生成器是一种特殊的迭代器,生成器自动实现了"迭代器协议"(即__iter__和next方法),不需要再手动实现两方法. 首先从字面意思来解释Iterable和Iterator的区别 ...
- python迭代对象有哪些_Python可迭代对象操作示例
本文实例讲述了Python可迭代对象.分享给大家供大家参考,具体如下: 1.列表生成式 list = [result for x in range(m, n)] g1 = (i for i in ra ...
- python获取某文件路径_Python获取当前文件路径
一. Python 获取当前文件路径方法 2. sys.path[0] 获取文件当前工作目录路径(绝对路径) sys.argv[0]|获得模块所在的路径(由系统决定是否是全名) 若显示调用python ...
最新文章
- Java基础入门语法和安装
- ctrl+shift+l指定选择 vscode_6.PYTHON开发利器之VS Code常用配置介绍
- [开源].NET数据库访问框架Chloe.ORM
- Python3 安装PyMySQL
- 【渝粤题库】国家开放大学2021春1026西方经济学(本)题目
- source insight常用命令--实际使用中比较常用的
- Android播放c4d工程文件方法,安卓播放网络视频怎么实现?
- 【数据库】MS SQL SERVER数据库日志压缩方法
- 训练营四教官打死网瘾少年案今开庭审理
- Android自定义控件开发入门与实战(7)SVG动画,android底层架构
- subscript on non-array or too many dimensions
- vue 视频 时间进度条组件-使用npm组件
- 值得收藏的22个搜索下载免费PDF电子书的网站
- dede 留言簿 多个
- 受害者被锤 法官遭殃 背后的它公关赢了?
- 怎么把信息秒回做到极致?IMO班聊也是拼了
- 《最优状态估计-卡尔曼,H∞及非线性滤波》:第10章 有关卡尔曼滤波的其他讨论
- 对于编码器与解码器的理解
- 彩色星球科技冠名著名钢琴艺术家吴牧野世界巡演《肖邦圆舞曲全集》长沙站演出...
- 互联网日报 | iPhone 12系列手机正式发布;盒马入局火锅市场;东风汽车A股IPO申请获受理...
热门文章
- 【slowfast 减少ava数据集】将ava数据集缩小到2个,对数据集做训练,然后进行检测,为训练自己的数据集做准备
- 安卓逆向之基于Xposed-ZjDroid脱壳 逆向分析(脱壳)
- Git本地缓存问题 修改密码后git无法拉取
- 可汗学院统计学笔记 42-81集
- mysql怎样实现先判断后联合_MYSQ创建联合索引,字段的先后顺序,对查询的影响分析...
- oracle报28003,【翻译自mos文章】运行utlpwdmg.sql之后报ORA-28003, ORA-20001, ORA-20002, ORA-20003, ORA-20004 错误...
- python安装rarfile模块_python windows下安装pip及rarfile
- Win7电脑设置定时关机的操作方法
- IE或Chrome浏览器玩Xbox游戏能实现吗
- 重装系统win10提示磁盘布局不受UEFI固件支持怎么办