MethodType用来将方法绑定到类,下面是一个栗子:
from types import MethodType
class student(object):
pass
def set_age(self,age):
self.age = age
def set_name(self,name):
self.name = name
def set_school(self,country,school):
self.country = country
self.school = school
s1 = student()
s2 = student()
# 一种实例绑定
s1.setname = MethodType(set_name, s1, student)
s2.setname = MethodType(set_name, s2, student)
# 另一种实例绑定的方式
student.setSc = MethodType(set_school, None, student)
#类绑定
student.setage = MethodType(set_age,student)
#第一种实例绑定函数的调用
s1.setname(u"韩梅梅")
s2.setname(u"李雷")
#第二种实例绑定的调用
s1.setSc("Shannx1","School1")
#类绑定的调用
student.setage(10)
print s1.name #韩梅梅
print s2.name #李雷
print s1.country,s1.school #Shannx1 School1
try:
print s2.country,s2.school
except Exception as e:
print e #'student' object has no attribute 'country'
print s1.age #10
print s2.age #10
s1.setage(18) #实例修改年龄
print s1.age #18
print s2.age #18