python中__slots__的禁用實例
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:'Test'objecthasnoattribute'__dict__'
>>>Test.__dict__
mappingproxy({'__module__':'__main__',
'__slots__':('a','b'),
'__init__':,
'a':,
'b':,
'__doc__':None})
以上就是Python中__slots__的禁用實例,希望對大家有所幫助。更多Python學習推薦:請關注IT培訓機構:千鋒教育。