#继承 一个类可以获取另一个类的所有成员 #刘备类 class LiuBei: #属性 familyName = '刘' firstName = '备' sex = '男' __wife = ['甘夫人','幂夫人','孙尚香'] #方法 def doshoes(self): print('我的草鞋') def DropSon(self): print('损我一员大将') def getBrother(self): print('桃源三结义') #刘禅类 class LiuShan(LiuBei):#继承操作,声明父类 #子类可以有独有成员 weight=123 def douququ(self): print('jiujiujiu') #声明做草鞋的方法(方法重载) def doshoes(self): print('我做的草鞋真丑') #重载桃源结义方法 def getBrother(self): print('我想和我的朋友') #使用父类的结义方法(一般用于绑定类的方法) LiuBei.getBrother(self) # 使用父类的结义方法(用于非绑定类的方法,通过对象调用) LiuBei.getBrother(self) #super().getBrother() print('真好看') print(LiuShan.__dict__) #issubclass #result = issubclass(LiuBei.object) #print(result) #调用子类重载父类方法 LiuShan.doshoes(1) #调用桃源结义(类) LiuShan.getBrother(1) #调用桃源结义(对象) ls = LiuShan() ls.getBrother() #多继承的实现(多继承尽量少用) #爷爷类 class YeYe: def taiji(self): print('每天清晨') #奶奶类 class NaiNai: def dapai(self): print('牌真好') #爸爸类 class BaBa: def gongzuo(self): print('早出晚归') #妈妈类 class MaMa: def zuoafn(self): print('一日三餐') #弟弟类 class DiDi: def shangxue(self): print('好好学习') #姐姐类 class JieJie(BaBa,MaMa,YeYe,DiDi,NaiNai): pass #通过姐姐类是否继承成功 jie = JieJie() jie.taiji() jie.shangxue() jie.gongzuo() #super()用于表示MOR列表中的一个类 #suppr()在单继承中就是表示父类名,因为单继承的继承关系和MRO列表一致 #人类 class Human: #吃饭方法 def eat(self): print('Human张嘴吃饭') print('Human闭嘴不吃') #老虎类 class Tiger(Human): def eat(self): print('Tiger张嘴吃饭') #调用人类的吃饭方法 super().eat()#调用Human类的吃饭方法 print('Tiger闭嘴不吃') #猪类 class Pig(Human): def eat(self): print('Pig张嘴吃饭') super().eat()#调用Tiger类的吃饭方法 print('Pig闭嘴不吃') #畜生类 class TigerPig(Tiger,Pig): def eat(self): print('TigerPig张嘴吃饭') super().eat()#实际上调用Tiger类的方法 print('TigerPig闭嘴不吃') #实例化畜生类对象 cs=TigerPig() #调用吃饭方法 cs.eat() result = TigerPig.mro() print(result) ''' #水果类 class Fruit: pass #南方水果类 class SouthFruit(Fruit): pass #北方水果类 class NorthFruit(Fruit): pass #南方礼物水果 class SouthGiftFruit(Fruit): pass #南方非礼物水果 class SouthNotGiftFruit(Fruit): pass #北方礼物水果 class NorthGiftFruit(Fruit): pass #北方非礼物水果 class NorthNotGiftFruit(Fruit): pass #苹果 class Apple(NorthGiftFruit): pass #梨 class Pear (NorthNotGiftFruit): pass #香蕉 class Banana(SouthNotGiftFruit): pass #橙子 class Orange(SouthGiftFruit): pass ''' #水果类 class Fruit: pass #南方类 class South: pass #北方类 class North: pass #礼物类 class Gift: pass #非礼物类 class NotGift: pass #苹果 class Apple(Fruit,North,Gift): pass #梨 class Pear(Fruit,North,NotGift): pass #香蕉 class Banana(Fruit,South,NotGift): pass #橙子 class Orange(Fruit,South,Gift): pass #封装 #颜色类 class Colors: #属性 flowers ='玫瑰' kinds = '好多种' #私有化成员 __price = 12 #受保护成员 _nice='红色' #方法 def see(self): #在当前类中访问受保护成员 print(self._nice) print('这个花很漂亮') def much(self): print('这个价钱不贵') #实例化颜色的对象 ys = Colors() ys.see() #玫瑰类 class MeiGui(Colors): #在子类中访问父类私有成员 def test(self): #print(Colors.__price) #print(Colors.kinds) print(Colors._nice) #实例化对象 mg = MeiGui() #print(mg.price) mg.test() print(mg._nice)
—面向对象
最新推荐文章于 2022-05-13 15:53:36 发布