python中经典类和新式类的区别

2019-02-05  本文已影响0人  RichardLiLi

在定义class的时候,有几种常见的写法,比如:

class A:

    pass

class B():

    pass

class C(object):

    pass

在python 2中查看以上各个class的类型,结果如下:

class A:

    pass

class B():

    pass

class C(object):

    pass

print type(A)

print type(B)

print type(C)

print出来的结果如下:

<type 'classobj'>

<type 'classobj'>

<type 'type'>

可见,在python 2中,加不加括号,都是表示经典的类,而如果括号里指明继承object,则为新式类。

而在python 3中,查看各个class的类型,结果如下:

class A:

    pass

class B():

    pass

class C(object):

    pass

print(type(A))

print(type(B))

print(type(C))

print之后的结果如下:

<class 'type'>

<class 'type'>

<class 'type'>

说明在python 3中,不管加不加括号,不管指不指明继承object,都是新式类。

总结:在python 3中,默认是新式类。在python 2中,默认是经典类,但如果指明是object,则为新式类。

上一篇下一篇

猜你喜欢

热点阅读