使用__slots__方法减少内存占用

如何减少由大量实例造成的代码内存占用巨大

我们可以使用__slots__方法来减少创建,调用实例时使用的内存

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

class Date:
__slots__ = {'year','mouth','day'}
def __init__(self,year,mouth,day):
    self.year=year
    self.mouth=mouth
    self.day=day

当定义了__slots__属性时,python将会采用一种更为紧凑的内部表示方法,不在为每个实例都创建一个dict,而是围绕实例创建一个固定长度的小型数组,其与元祖和列表较为相似。索引将会有固定的映射。

一般来说__slots__方法只用于创建数据结构的的实例中,大部分其他代码应该避免使用__slots__属性,因为具有此属性的实例无法实现多重继承等常用逻辑。且如果使用了此属性,用户将无法自己为实例新建属性,仅可使用__slots__中定义好的属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值