将一个方法绑定到类对象的一个实例上面
#声明类对象
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__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的,若在子类中也加入该属性,那么子类允许设置的属性为子类加上父类的属性名