【问题标题】:what is diff between both of class definition [duplicate]两个类定义之间的差异是什么[重复]
【发布时间】:2014-05-11 02:33:03
【问题描述】:

在 Python 2 中,类应明确定义为对象的子类。在 Python 3 中,这将是 默认。

>>> class A(object):
    pass

>>> class B():
    pass

>>> type(B)
<type 'classobj'>
>>> type(A)
<type 'type'>

我使用 Python 2.7,据我所知,在 2.7 中 class 继承自 object

【问题讨论】:

  • 阅读本文以了解新样式类 stackoverflow.com/questions/4015417/…?
  • 我很确定 class 在 python >=3.0 中继承自 object,但不是 2.7。在 python 2.x 中,您仍然必须从 object 显式继承。

标签: python class inheritance


【解决方案1】:

即所谓的“新样式对象”,在python 2.2中引入。

新样式对象与经典对象有不同的对象模型,有些东西不能与旧样式对象正常工作,例如 super()、@property 和描述符。

更多关于它的著名问题:

另请参考:

另外,请注意它们之间的区别仅在 Python 2 中。在 Python 3 中,这两种声明类型不再有区别(我知道您的问题是关于 Python 2 的,只是一个小提示)。

【讨论】:

  • 新的样式对象是哪一个?
  • @omeinusch:第一个,A
猜你喜欢
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 2011-06-01
  • 2016-04-01
相关资源
最近更新 更多