zoukankan      html  css  js  c++  java
  • Python 中的经典类新式类

    Python 中的经典类新式类

    要知道经典类和新式类的区别,首先要掌握类的继承

    类的继承的一个优点就是减少代码冗余

    广度优先和深度优先,这主要是在多类继承的时候会使用到

    经典类和新式类的主要区别就是类的继承的方式

    经典类遵循深度优先的规则,新式类遵循广度优先的规则。

    至于什么是深度优先什么是广度优先,可以看如下示例:

    class A:
        def save(self):
            print("a")
    
    class B(A):
        def save(self):
            print("b")
    
    class C(A):
        def save(self):
            print("c")
    
    class D(B, C):
        def __init__(self):
            pass
    
    d = D()
    d.save()
    
    >> b
    

    在新式类中,D是继承B和C的,按照顺序,首先去找B

    如果在B里面能找到实例化对象,便继承B,不再往别的地方寻找,

    如果没有,就会接着找C,而不是找B的父亲A!

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

    在 python3 中,都是遵循广度优先的规则

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

  • 相关阅读:
    java基础多线程
    java反射基础
    JSP-4(Session)
    JSP-3
    JSP-2
    复试计算机专业文献翻译
    jsp
    实现输入输出对应模型
    servlet
    tomcat的入门(1)
  • 原文地址:https://www.cnblogs.com/kai-/p/12274235.html
Copyright © 2011-2022 走看看