python學習02 --__slots__

將一個方法綁定到類對象的一個實例上面

#聲明類對象
class Student(object):
    pass

#定義需要綁定的方法
def setAge(self, age):
    self.age = age


from types import MethodType as mt

#類實例
s =  Student()

s.setAge = mt(setAge, s)
s.setAge(123)

print(s.age)

上面的方法也可以直接給類上面綁定方法,這樣後面的實例對象都會具有該方法

限制:__slots__

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

這樣就不能綁定其他的屬性,__slots__定義的屬性僅對當前類實例起作用,對繼承的子類是不起作用的,若在子類中也加入該屬性,那麼子類允許設置的屬性爲子類加上父類的屬性名

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