python3 使用静态属性节约对象实例的内存开销
2017-10-24 23:21
513 查看
# 如何减少大量实例占用内存的开销 import sys class Player: def __init__(self, uid, name, status=0, level=1): self.uid = uid self.name = name self.stat = status self.level = level class Player2: __slots__ = ['uid', 'name', 'stat', 'level'] # 用来描述实例的属性 def __init__(self, uid, name, status=0, level=1): self.uid = uid self.name = name self.stat = status self.level = level if __name__ == '__main__': p1 = Player('1010', 'Jim') p2 = Player2('1010', 'Jim') p1.x = 100 # Play1可以动态增加属性 # p2.x = 100 出现错误 print(sys.getsizeof(p1.__dict__)) # 用于动态绑定属性的内存开销 print(set(dir(p1))) print(set(dir(p2))) print(set(dir(p1)) - set(dir(p2)))
相关文章推荐
- 初学Python的学习笔记9----面向对象编程(获取对象信息、实例属性和类属性)、面向对象高级编程(使用__slots__、使用@property)
- python中快速删除实例对象中的所有属性
- Python使用稀疏矩阵节省内存实例
- 使用类、类属性、对象属性 分类: python基础学习 2014-03-19 16:22 220人阅读 评论(0) 收藏
- js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称
- python面向对象编程(2)—— 实例属性,类属性,类方法,静态方法
- 下载文件使用缓存(一次性读取到内存),优化性能(注意静态对象修改需要加锁)
- Python中使用MELIAE分析程序内存占用实例
- Python中类的定义、继承及使用对象实例详解
- python中类方法、类实例方法、静态方法的使用与区别
- 通过实例谈C#对象对内存的使用
- 使用meliae来做Python对象内存监测
- js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称
- python中类方法、类实例方法、静态方法的使用与区别
- php面向对象中static静态属性与方法的内存位置分析
- 循环与判断/利用函数的简单实例/使用对象/列举对象属性
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- python之类属性和实例对象属性
- php面向对象中static静态属性与方法的内存位置分析
- python中类方法、类实例方法、静态方法的使用与区别