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

     
     
     
  • 相关阅读:
    python-变量
    Python-编码
    Linux中 set、env、declare、export显示shell变量的区别
    iOS 为移动中的UIView(UIButton )添加点击事件
    iOS 8 TabBar 图片显示真实颜色
    Error Domain=ASIHTTPRequestErrorDomain Code=8 "Failed to move file from"xxx/xxx"to"xxx/xxx"
    iOS 判断View 是否是第一次显示
    编写程序时的注意事项
    iOS 图片填充 UIImageView (contentMode)
    修改 UISearchBar cancelButton 样式
  • 原文地址:https://www.cnblogs.com/lin1/p/8270574.html
Copyright © 2020-2023  润新知