zoukankan      html  css  js  c++  java
  • Python 继承,继承顺序 day7

    一、继承:

    继承的目的就是节省代码。当两个类有共同的东西时,需要继承

    class Syy():
        country='China'
        def __init__(self):
            self.money=5000
        def chaogu(self):
            self.money+=50000
            print('炒股%s'%self.money)  
    
    class Xs(Syy )      #继承:子类(父类),父类中的方法,子类中都有。继承可继承多个父类
        def chaogu(self):
            print('炒股,唱歌',self.money)     #money 是继承的money:5000
            self.money=500   #会覆盖父类的方法。方法重写
            print("重写后的money%s"%self.money)#money是重写后的money:500
            #super().XXX找到父类的XXX方法,并实例化一下(即调用)。可用作在父类基础上做修改。原父类的参数仍要传参:
            super().chaogu()
    
    sdb=Xs()
    sdb.chaogu()

    二、例子

    class BaseDB:
        def __init__(self,ip,port,password,db):
            self.ip=ip
            self.port=port
            self.password=password
            self.db=db
    class MySQL:
        def __init__(self,ip,user,port,password,db):   #定义本参数要传的值
            super().__init__(ip,port,password,db)   #继承基类,并传入基类所需参数
            self.user=user
    #当需要父类的功能,并需要补充时,使用super()来继承父类
    class Redis(BaseDB):
        def conn(self):
            self.r=redis.Redis(host=self.ip,db=self.db,password=self.password)
    #当需要的值与基类的值完全一致,不需要补充时,可以不用super()

    三、多继承时的继承顺序

    当一个类继承了多个类时,继承顺序:

    class A(object):#python2中的新式类,等同与python3中的class A:
        def say(self):
            print('A')
    
    
    class B(A):
        # pass
        def say(self):
            print('B')
    
    
    class C(A):
        pass
        # def say(self):
        #     print('c')
    
    class D(C, B):
        pass
    d=D()
    d.say()   
    print(D.mro())   #查看继承顺序
    # [<class '__main__.D'>, <class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <class 'object'>]   #广度优先
    #[<class '__main__.D'>, <class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>] 深度优先
    #python 2 中深度优先
    #python3或python2的新式类中广度优先
  • 相关阅读:
    java中的多线程
    PSCollectionView瀑布流实现
    直接拿来用!最火的iOS开源项目(一~三)
    iOS6新特征:UICollectionView介绍
    mac os颜色拾取工具/软件/器推荐
    ios/object-c中的UIColor一些比较偏的颜色展示/示例
    UIColor和 同 CIColor 与 CGColor 之间的联系、转换
    IOS开发自定义CheckBox控件
    IOS常用的第三方开发库
    JVM -XX: 参数介绍
  • 原文地址:https://www.cnblogs.com/candysalty/p/11243082.html
Copyright © 2011-2022 走看看