python中__slots__的禁用實(shí)例
1、說明
Python的對(duì)象屬性值都是采用字典存儲(chǔ)的,當(dāng)我們處理數(shù)成千上萬甚至更多的實(shí)例時(shí),內(nèi)存消耗可能是一個(gè)問題,因?yàn)樽值涔1淼膶?shí)現(xiàn),總是為每個(gè)實(shí)例創(chuàng)建了大量的內(nèi)存。所以Python提供了一種__slots__的方式來禁用實(shí)例使用__dict__,以優(yōu)化此問題。
2、實(shí)例
通過__slots__來指定屬性后,會(huì)將屬性的存儲(chǔ)從實(shí)例的__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__的禁用實(shí)例,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)推薦:請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。