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