將一個方法綁定到類對象的一個實例上面
#聲明類對象
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__定義的屬性僅對當前類實例起作用,對繼承的子類是不起作用的,若在子類中也加入該屬性,那麼子類允許設置的屬性爲子類加上父類的屬性名