【问题标题】:Difference between class foo , class foo() and class foo(object)?类 foo 、类 foo() 和类 foo(object) 之间的区别?
【发布时间】:2017-07-04 15:15:50
【问题描述】:

我注意到所有 3 个 -> class fooclass foo()class foo(object) 都可以使用,但我很困惑这 3 个之间有什么区别,如果有的话? (我的意思主要是属性,python3

【问题讨论】:

  • 这里三个都一样。
  • 在 Python 2 上,前两种形式做坏事。在 Python 3 上,它们是相同的(除非你对 object 做了一些愚蠢的事情)。

标签: python python-3.x class


【解决方案1】:

让我们分解它们:

  1. class foo:

    • Python 3:这通常是要走的路。默认情况下,Python 会为您添加 object 作为基类。
    • Python 2:它创建了一个旧样式classobj,这会让你很头疼。
  2. class foo()

    • Python 3Python 2:两个 Python 版本都类似于 class foo,修剪掉它,它看起来很丑,没有区别。
  3. class foo(object):
    • Python 3Python 2:在这两个 Python 中,都产生了一个新的样式类,其中包含所有最知名的好东西。人们通常在编写可能在 Python 2 中使用的代码时也使用这种形式,显式地从 object 继承会导致类在 Python 2 中成为新样式,并且在 Python 3 中没有任何区别(除了一些额外的输入)。

【讨论】:

猜你喜欢
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
  • 2016-09-09
  • 2012-07-26
  • 2017-03-14
  • 2017-02-03
  • 1970-01-01
相关资源
最近更新 更多