Python类定义语法

时间:2010-11-05 19:59:26

标签: python class

之间有区别吗?
class A:
    ...

class A():
    ...

我刚刚意识到我的几个类被定义为前者,它们的工作正常。空括号是否会有所不同?

2 个答案:

答案 0 :(得分:56)

虽然在类定义中使用空括号可能在语法上不正确,但在类定义之后的括号用于表示继承,例如:

class A(baseClass):
    ...

在Python中,没有任何基类的类声明的首选语法就是:

class A:
    ...

除非您是其他类的子类,否则不要使用括号。

docs on the matter应该让您更好地理解如何在Python中声明和使用类。

答案 1 :(得分:21)

后者是旧版本Python的语法错误。在Python 2.x中,您应尽可能从object派生,因为几个有用的功能仅适用于new-style classes(派生自object在Python 3.x中是可选的,因为新的 - 样式类是那里的默认类。)