—面向对象

#继承 一个类可以获取另一个类的所有成员
#刘备类
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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值