zoukankan      html  css  js  c++  java
  • python基础--类的经典类vs新式类

    经典类VS新式类区别

    1)写法
    新式类
    class Person(object):#new style
    经典类
    class Persion: #classical style

    2)调用父类
    新式写法用super
    经典类直接写父类类名


    3)多继承时继承顺序python3使用的是广度查询,所以两个都一样。

    经典类python2是深度查询。所以经典类python2多继承是有BUG class D(B,C) D--》B--》A--C

    # -*- coding:utf-8 -*-
    __author__ = 'shisanjun'
    
    class A:
        def __init__(self):
            self.n = 'A'
    
    class B(A):
        # def __init__(self):
        #     self.n = 'B'
        pass
    
    class C(A):
        def __init__(self):
            self.n = 'C'
    
    class D(B,C):
        # def __init__(self):
        #     self.n = 'D'
        pass
    
    obj = D()
    
    print(obj.n)

    注:新式类py2和py3结果:都是调用 obj.n先类D中找self.n如果没有,在B中找self.n,如果没有在C中找self.n,如果还是没有在A中找self.n(广度优先)

      经典类py3:都是调用 obj.n先类D中找self.n如果没有,在B中找self.n,如果没有在C中找self.n,如果还是没有在A中找self.n(广度优先)

      经典类py2: obj.n先类D中找self.n如果没有,在B中找self.n,如果没有在A中找self.n,如果还是没有在C中找self.n (深度优先),这是有BUG的。

  • 相关阅读:
    cuda cdnn 安装
    神经网络的例子
    理解pytorch几个高级选择函数(如gather)
    opencv 膨胀和腐蚀
    PyPDF2
    百度ocr
    opencv 代码集合
    tesseract cuda pytorch安装
    Vue路由钩子 afterEach beforeEach区别
    (转载)中文区位码、国标码、机内码、输入码、字形码
  • 原文地址:https://www.cnblogs.com/lixiang1013/p/6920498.html
Copyright © 2011-2022 走看看