python3 close(Python中__slots__的禁用实例)
导读:1、说明...
1 、说明
Python 的对象属性值都是采用字典存储的 ,当我们处理数成千上万甚至更多的实例时 ,内存消耗可能是一个问题,因为字典哈希表的实现 ,总是为每个实例创建了大量的内存 。所以 Python 提供了一种 __slots__ 的方式来禁用实例使用 __dict__ ,以优化此问题 。
2 、实例
通过 __slots__ 来指定属性后 ,会将属性的存储从实例的 __dict__ 改为类的 __dict__ 中:
classTest: __slots__=(a,b) def__init__(self,a,b): self.a=a self.b=b >>>t=Test(1,2) >>>t.__dict__ AttributeError:Testobjecthasnoattribute__dict__ >>>Test.__dict__ mappingproxy({__module__:__main__, __slots__:(a,b), __init__:<function__main__.Test.__init__(self,a,b)>, a:<memberaofTestobjects>, b:<memberbofTestobjects>, __doc__:None})以上就是Python中__slots__的禁用实例 ,希望对大家有所帮助 。更多Python学习推荐:python教学
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!