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方式调用父类的方法。

     
     
     
  • 相关阅读:
    驱动开发之基本
    Bitmap文件格式+生成一个BMP文件
    PPP 转义字符 编码 和 解码
    数组数据整体按位左移或右移一位
    一个assert的写法
    c++11 右值引用 && std::move()
    openMP一小时初探
    linux命令学习_实验楼(一)
    50 行 Python 代码完成图片转字符
    LFW精确度验证__c++双线程读写txt
  • 原文地址:https://www.cnblogs.com/lin1/p/8270574.html
Copyright © 2011-2022 走看看