摘要

當(dāng)一個類需要創(chuàng)建大量實(shí)例時,可以通過__slots__聲明實(shí)例所需要的屬性,

例如,class Foo(object): __slots__ = ['foo']。這樣做帶來以下優(yōu)點(diǎn):

  1. 更快的屬性訪問速度

  2. 減少內(nèi)存消耗

以下測試環(huán)境為Ubuntu16.04 Python2.7


Slots的實(shí)現(xiàn)

我們首先來看看用純Python是如何實(shí)現(xiàn)__slots__(為了將以下實(shí)現(xiàn)的slots與原slots區(qū)分開來,代碼中用單下劃線的_slots_來代替)

class Member(object):
    # 定義描述器實(shí)現(xiàn)slots屬性的查找
    def __init__(self, i):
        self.i = i    def __get__(sel
        
		

網(wǎng)友評論