zoukankan      html  css  js  c++  java
  • python中经典类和新式类的区别

    要知道经典类和新式类的区别,首先要掌握类的继承。类的继承的一个优点就是减少代码,而且使代码看起来结构很完整。

    那什么是经典类,什么是新式类呢?

    经典类和新式类的主要区别就是类的继承的方式 ,经典类遵循深度优先的规则,新式类遵循广度优先的规则。至于什么是深度优先什么是广度优先,可以看如下示例:

    # Author:Zhang Zhao
    class A(object):
        def __init__(self):
            print('A')
    class B(A):
        pass
        # def __init__(self):
        #     print('B')
    class C(A):
        def __init__(self):
            print('C')
    class D(B,C):
        pass
        # def __init__(self):
        #     print('D')
    r1 = D()
    View Code

    在新式类中,D是继承B和C的,按照顺序,首先去找B,如果在B里面能找到实例化对象,便继承B,不再往别的地方寻找,如果没有,就会接着找C,而不是找B的父亲A!

    但是在经典类中,如果B中找不到,它会优先考虑B的父亲A,而不是C。

    在python3中,都是遵循广度优先的规则,在python2.7以前,应该是遵循深度优先的的规则。两种规则没有优劣之分。

  • 相关阅读:
    设计模式-观察者模式
    获取ubuntu中软件包的有用地址
    vim 简单命令
    adb logcat 日志过滤
    shell编程——
    shell编程——参数传递
    Chromecast
    linux 广播
    【转】Git命令解说
    linux 多播
  • 原文地址:https://www.cnblogs.com/zz1314/p/10364417.html
Copyright © 2011-2022 走看看