类声明的区别(Difference between class declarations)

2019-07-19 19:00发布

我看到有关这个话题的一些类似的问题,但我希望得到肯定,所以我问...

是什么区别:

class MyClass:
    pass

class MyClass():
    pass

此外,有没有这两者之间的区别:

class MyClass():
    pass

class MyClass(object):
    pass

Answer 1:

还有就是前两种拼法之间没有什么区别。

在Python 2.7版,还有就是后两者之间的巨大差异。 继承object使它成为一个新式类 ,改变继承语义,并添加描述(支持@property@classmethod等)。 这是在Python 3默认。

新样式类在Python 2.2引入了统一类型(如intlist ),和类,因为一些事情改变向后兼容的方式,你需要“同意”,从明确的继承object ,使变化。

在Python 3,继承object是不再需要,类新风格,始终。



Answer 2:

有没有区别class MyClassclass MyClass() 第二个问题是依赖于你的Python版本。 在python3.x,没有任何区别-在python2.x,后者(你来自哪里继承object )创建一个新的风格类 ,而不是老式的类。 在python3.x, 所有的类都是新的样式。 新式类是首选,这些天 - 因此,我总是确保我的课从对象继承。



Answer 3:

的类型的类声明class MyClass(object)是新式类上的Python 2.x的

圭多写的一些,在带来新的阶级思想的Python的历史



文章来源: Difference between class declarations
标签: python class