这两者之间有什么区别吗
class A: ...
还有
class A(): ...
我刚刚意识到,我的一些类被定义为前者,它们工作得很好。空括号有什么区别吗?
后者是旧版本 Python 的语法错误。在 Python 2.x 中,只要有可能,就应该从 object派生,因为有几个有用的特性只能在 新式班级中使用(在 Python 3.x 中,从 object派生是可选的,因为新样式的类是默认类)。
object
虽然在类定义中使用空括号在语法上可能不是不正确的,但是类定义后的括号用来表示继承,例如:
class A(baseClass): ...
在 Python 中,不使用任何基类的类声明的首选语法很简单:
不要使用括号,除非你是其他类的子类。
这件事的文件应该让您更好地理解如何在 Python 中声明和使用类。
类定义与函数/方法定义稍有不同。
类定义中的括号用于定义从哪个类继承。你不需要在它前面写 def,当你从默认的“ object”继承时,你不需要括号来定义。
所以你可以这样写:
class C():
或者:
class C:
函数/方法定义总是使用括号,即使你没有定义参数。如果你不使用它们,你会得到一个 SyntaxError。
稍后,在代码中定义了 class/function/method 之后,只要写下名称就会指向 class/function/method。
如果您想要调用或访问其中的任何一个,您将需要()、[]或其他任何东西。