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

     
     
     
  • 相关阅读:
    echarts如何设置背景图的颜色
    小程序获取的用户头像怎么做成圆形
    小程序源码丢失了怎么在微信平台反编译找回
    微信小程序弹框提示绑定手环实例
    微信小程序仿微信运动步数排行-交互
    微信小程序简单常见首页demo
    微信小程序实现tab页面切换功能
    微信小程序实现一个简单的表格
    2018年各大互联网前端面试题三(阿里)
    java和c/c++
  • 原文地址:https://www.cnblogs.com/lin1/p/8270574.html
Copyright © 2011-2022 走看看