当你在python中声明一个类时,我经常会在类名旁边看到(object)
。
class someClass(object):
def __init__(self, some_variable):
...
...
这与下面的写作相同吗?
class someClass: # didn't write (object) here.
def __init__(self, some_variable):
...
...
我觉得它们的运作方式没有任何区别。这只是澄清someClass
是subclass
object
的方法吗?在制作object
时明确写class
是一种好习惯吗?
答案 0 :(得分:8)
在Python 2中,使someClass
成为object
的子类,将someClass
转换为“新式类”,而没有(object)
,它只是一个“经典类”。 “有关它们之间差异的信息,请参阅the docs或another question here;简短的回答是你应该总是使用新式的课程来带来好处。
在Python 3中,所有类都是“新风格”,编写(object)
是多余的。
答案 1 :(得分:1)