【python】__slots__簡介

__slots__ 呢是爲了來限制class屬性的,我們知道,當我們創建一個實例的時候可以來給他增加一些屬性或者方法,但是如果我們想要限制class的屬性,只允許它有特定的屬性的時候就用到__slots__ 了。
舉例說明:

class Student(object):
    __slots__ = ('name', 'age')#用tuple定義允許綁定的屬性名稱

這樣我們就只能使用name 和age屬性了

>>> s = Student() # 創建新的實例
>>> s.name = 'Michael' # 綁定屬性'name'
>>> s.age = 25 # 綁定屬性'age'
>>> s.score = 99 # 綁定屬性'score'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Student' object has no attribute 'score'

注意⚠️
這個只有在本類中有效,如果他作爲父類的話,那麼子類用的時候不會有此限制,如果想讓子類有此限制,那麼就需要在子類中重新定義。那麼子類中允許定義的屬性就是子類的加上父類的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章