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

时间:2013-10-27 03:07:04

标签: python class object

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

class someClass(object):
    def __init__(self, some_variable):
        ...
    ...

这与下面的写作相同吗?

class someClass: # didn't write (object) here.
    def __init__(self, some_variable):
        ...
    ...

我觉得它们的运作方式没有任何区别。这只是澄清someClasssubclass object的方法吗?在制作object时明确写class是一种好习惯吗?

2 个答案:

答案 0 :(得分:8)

在Python 2中,使someClass成为object的子类,将someClass转换为“新式类”,而没有(object),它只是一个“经典类”。 “有关它们之间差异的信息,请参阅the docsanother question here;简短的回答是你应该总是使用新式的课程来带来好处。

在Python 3中,所有类都是“新风格”,编写(object)是多余的。

答案 1 :(得分:1)

在python 3.x中,当你声明:

时,它们是相同的
class C:
    def __init__(self):
        ...

它隐含地从object继承。

有关详细信息,请访问this.