经典类和新式类的区别

mac2022-06-30  144

#经典类class My:   pass

#新式类class My2(object):   pass

######python3里面没有任何的区别

例:

class A(object):   def x(self):     print('A')class B(A):   # def x(self):     # print('B')     passclass C(A):   def x(self):     print('C')

class D(B,C):   pass

s = D()s.x()

 

*** 区别 *** 只限 python 2 ***

区别一、

经典类是 深度优先:先找 B -> B 要是没有x()方法,则找 A -> 然后再找 C

新式类是 广度优先:先找 B -> B 要是没有x()方法,则找 C -> 然后再找 A

区别二、

经典类不能用 super(用于自动帮你找到父类)

新式类可以用 super

 

转载于:https://www.cnblogs.com/lynn-chen/p/9116967.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)