首页 > 编程语言 > 详细

python新式类与旧式类

时间:2019-04-02 23:51:25      阅读:197      评论:0      收藏:0      [点我收藏+]

python2.X是经典类【旧式类】:

是以深度优先【】

但是在Python2.x中,默认都是经典类,只有显式继承了object才是新式类,即:
class Person(object):pass 新式类写法
class Person():pass 经典类写法
class Person:pass 经典类写法

他们最明显的区别在于继承搜索的顺序发生了改变,即
经典类多继承搜索顺序(深度优先):
先深入继承树左侧查找,然后再返回,开始查找右侧,如图所示:

1           A

2-1 B          2-2 C

3         D 

     A()

B(A)    C(A)

    D(B,C)

 

pyton2深度优先:3-->2-1-->1-->2-2-->1

 

python3.x新式类:

是以广度优先【】

在Python 3.x中取消了经典类,默认都是新式类,并且不必显式的继承object,也就是说:
class Person(object):pass
class Person():pass
class Person:pass
三种写法并无区别,推荐第一种

1           A

2-1 B          2-2 C

3         D 

     A()

B(A)    C(A)

    D(B,C)

 pyton3  广度优先 3-->2-1-->2-2-->1

新式类多继承搜索顺序(广度优先):
先在水平方向查找,然后再向上查找,如图所示:

 

python新式类与旧式类

原文:https://www.cnblogs.com/1314520xh/p/10624056.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!