Python基礎(__slots__)

class Point(object):
    __slots__ = ('name','point')
p1 = Point()
p1.name = 100
print(p1.name)#100
#p1.score = 200#因爲'score'沒有被放到__slots__中,因此不能綁定score屬性,試圖綁定score將獲得AttributeError的錯誤

#使用__slots__要注意,__slots__定義的屬性僅對當前類實例起做用,對繼承的子類是不起做用的
#除非在子類中也定義__slots__,這樣,子類實例容許定義的屬性就是自身的__slots__加上父類的__slots__
class PointExtend(Point):
    pass
p2 = PointExtend
p2.score = 200
print(p2.score)#200
相關文章
相關標籤/搜索