python新式类和经典类的区别
2023-09-14 09:00:13 时间
1)首先,写法不一样:
classA:passclassB(object):pass
2)在多继承中,新式类采用广度优先搜索,而旧式类是采用深度优先搜索。
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
相关文章
- Python怎么输入小数和整数_python输入非负整数
- 【敬初学者】Python基础学完了,该怎么知道自己学的怎么样呢?十个经典实战小项目附源码
- matlab/octave/scilab/python 获取当前目录下的文件(夹)名称列表(非遍历)命令小结
- unboundlocalerror python_Python问题:UnboundLocalError: local variable ‘xxx’ referenced before assignme
- 【Python】python文件打开方式详解——a、a+、r+、w+、rb、rt区别[通俗易懂]
- json转字符串 python_Python读取json
- 【说站】python zip函数的使用注意
- 【说站】python集合的底层实现
- 【说站】python切片的使用特性
- continue和break的区别 python_c语言continue c.编程.net
- python廖雪峰学习笔记[通俗易懂]
- Python文件名后缀_python获取目录下所有文件的文件名
- 正则表达式Python_python正则表达式匹配字符串
- Pycharm 如何自动调整 Python 代码符合 pep8 编码规范
- 为什么requests不是python标准库?
- Python 中的默认值是什么?
- 听说Python有鸡肋?一起聊聊...
- python-Python与MongoDB数据库-使用Python执行MongoDB查询(一)
- python 判断字符串详解程序员
- python 与rabbitmq详解编程语言
- 使用Python操作MySQL数据库快速上手(python访问mysql数据库)
- python使用Python轻松操作Redis(redis-)
- 使用Python连接SQL Server数据库(python连接sqlserver)
- Linux下运行Python脚本的步骤简介(linux如何运行python脚本)