#每天一点Python——93
#类的动态绑定属性和方法
'''
类是模板是图纸
可以创建n多个同类型的对象,由于类型是相同的,所以每个对象的属性名称都是相同的,但是属性值可以不同。
例如:根据车的图纸制造出了三辆汽车,都有颜色这个属性,但是其中颜色属性有不同,如红黄蓝绿,所以这就算一个动态不同。
'''
#我们继续拿之前就创建好的类
class Student():
school='XX学校'
def __init__(self,xingming,age):
self.name=xingming
self.age=age
def show(self):
print(f'我叫:{self.name},今年{self.age}岁了')
#这是一个学生类,里面有类属性,有个初始化方法,还有一个我们定义的show()方法
#现在我们创建两个Studen对象
stu1=Student(xingming='阿四',age=20)
stu2=Student(xingming='阿五',age=21)
#你在这里调用的属性都是xingming和age【现在进行打印输出不同的属性值】
print(stu1.name,stu2.age)
#输出结果:阿四 21
#现在我们为stu1动态绑定一个实例属性
stu1.xingbie='男'
#现在我们输出stu1的属性会有三个
print(stu1.name,stu1.age,stu1.xingbie)
#输出结果:阿四 20 男
#stu1.xingbie是stu1独有的属性,stu2是没有的,如果要强制输出会报错。
#动态绑定方法【我们定义的里面只有一个方法,我们现在再创建一个】
def ziwojieshao():#我们把他定义在了类的外面,现在叫做函数
print('我是一个普通的函数,定义在类外,我现在需要变动态,绑定stu2对象的方法')
stu2.fun=ziwojieshao#这里是函数的一个赋值【千万不要加小括号,加了就是调用了】不加就是赋值,叫绑定
#现在已经绑定完成了,fun就是stu2对象的方法了,可以调用了【这变成了对象的方法,就属于我们的实例方法,调用就是打点】
stu2.fun()
#输出:我是一个普通的函数,定义在类外,我现在需要变动态,绑定stu2对象的方法
'''
这就是我们的一个动态绑定
'''