python types模块MethodType的一个例子

    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


记录一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值