代码之家  ›  专栏  ›  技术社区  ›  Falmarri

Python类定义语法

  •  58
  • Falmarri  · 技术社区  · 14 年前

    class A:
        ...
    

    class A():
        ...
    

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

    2 回复  |  直到 14 年前
        1
  •  20
  •   Ignacio Vazquez-Abrams    9 年前

    后者是旧版本Python的语法错误。在Python2.x中,您应该从 object 但只要有可能,因为只有 new-style classes (来源于 在Python3.x中是可选的,因为新样式的类是默认的)。

        2
  •  68
  •   Rafe Kettler    14 年前

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

    class A(baseClass):
        ...
    

    class A:
        ...
    

    不要使用括号,除非你是子类化其他类。

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