美文网首页
python中经典类和新式类的区别

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

作者: RichardLiLi | 来源:发表于2019-02-05 05:42 被阅读0次

    在定义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,则为新式类。

    相关文章

      网友评论

          本文标题:python中经典类和新式类的区别

          本文链接:https://www.haomeiwen.com/subject/ldwmsqtx.html