繁体   English   中英

Python class 定义语法

[英]Python class definition syntax

有区别吗

class A:
    ...

class A():
    ...

我刚刚意识到我的几个课程被定义为前者并且它们工作得很好。 空括号有什么区别吗?

虽然在类定义中使用空括号在语法上可能没有错误,但类定义后的括号用于表示继承,例如:

class A(baseClass):
    ...

在 Python 中,没有任何基类的类声明的首选语法很简单:

class A:
    ...

不要使用括号,除非您要继承其他类。

关于这个问题文档应该让你更好地理解如何在 Python 中声明和使用类。

后者是旧版本 Python 的语法错误。 不过,在 Python 2.x 中,您应该尽可能从object派生,因为一些有用的功能仅适用于新样式类(从object派生在 Python 3.x 中是可选的,因为新样式类是那里的默认值)。

类定义与函数/方法定义有点不同。

类定义中的括号用于定义您从哪个类继承。 你不要在它前面写 def ,当你从默认的 'object' 继承时,你不需要括号来定义。

所以你可以写:

class C():

或者:

class C:

函数/方法定义总是带括号,即使你没有定义参数。 如果你不使用它们,你会得到一个 SyntaxError。

后面在代码中定义了一个类/函数/方法之后,只要写名字就会指向这个类/函数/方法。

如果您想调用或访问其中任何一个,您需要 ()、[]、. 管他呢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM