比如有一个Student类,有两个子类:一种是男同学,一种是女同学,继承关系如下:
class Student(object): pass class Male_Student(Student): pass class Female_Student(Student): pass
如果你是个裁缝,现在要做校服。校服分男女,可是纽扣啊,拉链啊什么的是一样的,所以可以把这些一样的元素都写在父类里,子类只写一些男女有别的代码。但是你并不满足死板的校服样式(说实话中国的校服确实是丑- -),想临时天马行空地在哪里加一块花纹、装饰等,这时可以直接通过hasattr,getattr,setattr直接设置。
#多态函数xiaofu def xiaofu(Student): #小花纹改大花纹 if hasattr(Student,'小花纹'): setattr(Student,'小花纹','大花纹') #如果你觉得原版校服口袋不好看,可以自己写一个改口袋款式的函数 def new_koudai(koudai): 处理koudai代码... return koudai koudai = new_koudai(getattr(Student,'口袋')) setattr(Student,'口袋',koudai)
总之呢,这篇文章给我的感受就是可以让实现多态的同时有更多的自由DIY,你想用别人的类和方法但是你并不满足现有的功能,想自己DIY的话,这篇文章就告诉你该如何去做!
Sign in to make a reply
莉莉娅的小暖炉
比如有一个Student类,有两个子类:一种是男同学,一种是女同学,继承关系如下:
如果你是个裁缝,现在要做校服。校服分男女,可是纽扣啊,拉链啊什么的是一样的,所以可以把这些一样的元素都写在父类里,子类只写一些男女有别的代码。但是你并不满足死板的校服样式(说实话中国的校服确实是丑- -),想临时天马行空地在哪里加一块花纹、装饰等,这时可以直接通过hasattr,getattr,setattr直接设置。
总之呢,这篇文章给我的感受就是可以让实现多态的同时有更多的自由DIY,你想用别人的类和方法但是你并不满足现有的功能,想自己DIY的话,这篇文章就告诉你该如何去做!