在Python中定义一个类

时间:2011-05-06 01:04:08

标签: python class class-design

class Car:
    pass

class Car():
    pass

这两者有什么区别? 而且,

a = Car

a = Car()

另外,这两者之间有什么区别?

最好的问候

2 个答案:

答案 0 :(得分:8)

第一个语句,a = Car只会使a成为Car类的别名。因此,在您执行此操作后,您可以执行b = a(),它与b = Car()

相同

在最后附加()后,它会使python实际初始化类(__call__或只是初始化,但你不必担心),并且变成了 由Car()返回,在这种情况下,它是类实例。

至于class Car:class Car():之间的差异。第二个是无效的语法(编辑:在2.5之前,我仍然会说这是一种糟糕的风格,因为如果你没有继承它就没有理由存在)。你有括号的原因是你需要继承另一个类。

答案 1 :(得分:1)

在第一个片段中,后者在旧版本的Python中是无效的语法。

在第二个片段中,前者绑定对类的引用,后者绑定对类的新实例的引用。