关于python:使用和不使用(对象)定义类

Defining classes with and without (object)

本问题已经有最佳答案,请猛点这里访问。

我正在学习python 3。在我读过的一本书中,要定义您使用的类:

1
2
class Classname:
    # and so on

在另一篇文章中,它说:

1
2
class Classname(object):
    # and so on

哪种方法是正确的?它们有什么不同?


在您提到的特定情况下(即从object继承),这在python 3中没有区别。在Python2中,这是旧样式类之间的区别

1
2
class Classname:
    ...

和新样式类

1
2
class Classname(object):
    ...

它的行为与这里和这里描述的不同。

当您在python 3中编程时,我将省略它以使您的代码更容易阅读。由于所有对象都隐式继承自object,因此这些信息对代码的读者没有帮助。


只有python 2.7有区别:python2.7中的旧样式类和新样式类?

在Python 3中

1
2
class SomeClass:
    ...

是一样的

1
2
class SomeClass(object):
    ...