创新互联Python教程:Python中__slots__的禁用实例
1、说明

python 的对象属性值都是采用字典存储的,当我们处理数成千上万甚至更多的实例时,内存消耗可能是一个问题,因为字典哈希表的实现,总是为每个实例创建了大量的内存。所以 Python 提供了一种 ____slots____ 的方式来禁用实例使用 __dict__,以优化此问题。
2、实例
通过 __slots__ 来指定属性后,会将属性的存储从实例的 __dict__ 改为类的 __dict__ 中:
class Test:
__slots__ = ('a', 'b')
def __init__(self, a, b):
self.a = a
self.b = b
>>> t = Test(1, 2)
>>> t.__dict__
AttributeError: 'Test' object has no attribute '__dict__'
>>> Test.__dict__
mappingproxy({'__module__': '__main__',
'__slots__': ('a', 'b'),
'__init__': ,
'a': ,
'b': ,
'__doc__': None}) 以上就是Python中__slots__的禁用实例,希望对大家有所帮助。更多Python学习推荐:python教学
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
分享名称:创新互联Python教程:Python中__slots__的禁用实例
标题路径:http://www.jxjierui.cn/article/cdoecgh.html


咨询
建站咨询
