python新式类和经典类的区别?
程序员文章站
2024-01-05 19:12:28
python新式类和经典类的区别?
1)首先,写法不一样:
class A:
pass
class B(object):
pass
2)在多...
python新式类和经典类的区别?
1)首先,写法不一样:class A: pass class B(object): pass2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索。
3)新式类更符合OOP编程思想,统一了python中的类型机制。
Python 2.x中默认都是经典类,只有显式继承了object才是新式类
Python 3.x中默认都是新式类,不必显式的继承object
其次:
------新式类对象可以直接通过__class__属性获取自身类型:type
------继承搜索的顺序发生了改变,经典类多继承属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧;新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动
------新式类增加了__slots__内置属性, 可以把实例属性的种类锁定到__slots__规定的范围之中
------新式类增加了__getattribute__方法
class A(): def __init__(self): pass def save(self): print "This is from A" class B(A): def __init__(self): pass class C(A): def __init__(self): pass def save(self): print "This is from C" class D(B,C): def __init__(self): pass fun = D() fun.save() 经典类的答案: This is from A 新式类的答案: This is from C
上一篇: JS表格的动态操作完整示例
推荐阅读
-
SpringBoot 之 @Transaction注解的类级别和方法级别的区别
-
Python多线程编程(三):threading.Thread类的重要函数和方法
-
基本数据类型和包装类的区别 Boolean Character Byte Short Integer Long Float Double 、栈、堆
-
接口和抽象类的联系和区别
-
Java中接口和抽象类的区别
-
python新式类和经典类的区别?
-
python类和函数中使用静态变量的方法
-
JavaSE的包装类,自动装箱和自动拆箱 ,字符窜转换,toString(),equals(), hashCode()的区别
-
php抽象类和接口的概念与区别
-
浅析php中抽象类和接口的概念以及区别