python類-各種雙底線

來源:互聯網
上載者:User
__slots__用來限制類中的執行個體屬性每個執行個體對象 x 都擁有一個字典 x.__dict__. python通過此字典允許你綁定任意屬性給 x 執行個體. 定義一個名為 __slots__ 的類屬性可以有效減少每個執行個體佔用的記憶體數量. __slots__ 是一個字串序列(通常是一個tuple).  當類  擁有 __slots__屬性, x 的直接子類就沒有 x.__dict__屬性. 如果試圖綁定一個 __slots__ 中不存在屬性給執行個體的話, 就會引發異常. __slots__屬性雖然令你失去綁定任意屬性的方便, 卻能有效節省每個執行個體的記憶體消耗, 有助於產生小而精乾的執行個體對象

class SYG(object):     __slots__ = ('x','y')    def __init__(self):        passif __name__ == '__main__':    test = SYG()    test.z = 3 #拋出異常

__all__這個用來限定一個檔案模組中可以被其他模組import的所有類__all__ = ['CocosNode'] 表示本模組只有CocosNode可以被別的模組import__contains__

Cocos2D中會定義如下的函數來判斷一個節點是否是其子節點    def __contains__(self, child):
        return child in self.get_children()


其他屬性
用內建函數dir()可以顯示類屬性,例如:

class SYG(object):     def __init__(self):        self.x = [1,2,3]    def __contains__(self,a):        return a in xif __name__ == '__main__':    print(dir(SYG))

可以得到類似下面的內容:
['__class__', '__contains__', '__delattr__', '__dict__', '__doc__', '__eq__', '_
_format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__l
e__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__'
, '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__wea
kref__']

C.__name__ 類C的名字(字串)
C.__doc__ 類C的文檔字串
C.__bases__ 類C的所有父類構成的元組
C.__dict__ 類C的屬性
C.__module__ 類C定義所在的模組(1.5 版本新增)
C.__class__ 執行個體C對應的類(僅新式類中)
《本節完》

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.