(对象)在python中的类名旁边做了什么?

cha*_*pkr 4 python class object

当你在python中声明一个类时,我经常看到(object)在类名旁边写的.

class someClass(object):
    def __init__(self, some_variable):
        ...
    ...
Run Code Online (Sandbox Code Playgroud)

这和下面写的一样吗?

class someClass: # didn't write (object) here.
    def __init__(self, some_variable):
        ...
    ...
Run Code Online (Sandbox Code Playgroud)

我觉得它们的运作方式没有任何区别.难道仅仅是一种澄清,someClasssubclassobjectobject当我做一个明确的写作时,这是一个好习惯class吗?

jwo*_*der 10

在Python 2,制作someClass的一个子类objectsomeClass成"新式类",而没有(object)它只是一个"经典一流".有关它们之间差异的信息,请参阅此处的文档其他问题 ; 简短的回答是你应该总是使用新式的课程来获得它们带来的好处.

在Python 3中,所有类都是"新风格",写作(object)是多余的.