之间有区别吗?
class A:
...
和
class A():
...
我刚刚意识到我的几个类被定义为前者,它们的工作正常。空括号是否会有所不同?
答案 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中是可选的,因为新的 - 样式类是那里的默认类。)