zoukankan      html  css  js  c++  java
  • python新生类和经典类简单说明

    经典类:
    #!/usr/bin/env python
    #*-* coding:utf-8 *-*
    class A():
        def __init__(self):
            print 'my name is GF'
       
        def test(self):
            print 'this is ====A====='
    class B(A):
        def __init__(self):
            print 'my name is BFather'
    class C(A):
        def  __init__(self):
            print 'my name is Cfather'
       
        def test(self):
            print 'this is ======C======'
    class D(B,C):
        def  __init__(self):
            print 'my name is D'
    t1 =D()
    t1.test()
    执行效果:
    my name is D
    this is ======A======
    #继承关系,先找B,如果B没有则找A.(深度优先)
    

      

     
    新生类:
    #!/usr/bin/env python
    #*-* coding:utf-8 *-*
    class A(object):
        def __init__(self):
            print 'my name is GF'
       
        def test(self):
            print 'this is ====A====='
    class B(A):
        def __init__(self):
            print 'my name is BFather'
    class C(A):
        def  __init__(self):
            print 'my name is Cfather'
       
        def test(self):
            print 'this is ======C======'
    class D(B,C):
        def  __init__(self):
            print 'my name is D'
    t1 =D()
    t1.test()
     
    执行结果
    my name is D
    this is ======C======
    #继承关系,先找B,如果B没有则找C(广度优先)
     
    当然,class D(B,C) 这里是先执行B,在执行C的。
     
    小结:经典类深度优先,新生类广度优先。
    class A(object):
        def __init__(self):
            print 'my name is GF'
    
        def test(self):
            print 'this is ====A====='
    class B(A):
        def __init__(self):
            print 'my name is BFather'
    class C(A):
        def  __init__(self):
            print 'my name is Cfather'
    
        def test(self):
            print 'this is ======C======'
    class D(B,C):
        def  __init__(self):
            print 'my name is D'
            super(D,self).__init__()
    t1 =D()
    t1.test()
    
    这里执行父类的构造函数,可以使用super方法,这也是新生类的特点。
    如果使用经典类的话,那么调用父类的构造函数或者是方法,只能使用父类.方法(self)的方法
    

      

    小结:新生类是支持super方式调用父类的方法。

     
     
     
  • 相关阅读:
    训练集、验证集和测试集的区别
    视频分类论文“Towards Good Practices for Very Deep Two-Stream ConvNets”程序运行过程
    201571030304/201571030311《小学四则运算练习软件软件需求说明》结对项目报告
    201571030304/201571030311《小学四则运算练习软件》结对项目报告
    实验二 软件工程个人项目
    实验一 软件工程准备
    MySQL的卸载与安装
    大宗商品
    Web_Servlet四大域对象
    Web_Servlet之间请求转发
  • 原文地址:https://www.cnblogs.com/lin1/p/8270574.html
Copyright © 2011-2022 走看看