在python中从`object`派生类

Fal*_*rri 29 python inheritance class

所以我只是学习python(我知道很多其他语言)而且我对某些东西感到困惑.我认为这是由于缺乏文档(至少我能找到).在一些网站上,我读过你应该从object以下方面派生你的课程:


class Base(object):
    pass

但我不知道那是做什么或为什么或何时应该这样做.我是否错过了关于此的官方文件?这是一个3.x功能吗?

Dun*_*can 24

大多数情况下,你是否从对象继承并不重要,但如果你不这样做,那么当你忘记了你决定不打扰时,有些错误会等着你.

如果你最终不从对象继承,一些微妙的东西将无法正常工作:

  1. 使用经典类中的属性只能部分工作:get工作正常,但set做的很奇怪.
  2. 多重继承在经典类中的行为与在从对象派生的类中的行为不同.
  3. 如果您尝试将经典类与子类对象混合使用,那么多重继承将不起作用.无论你做什么,你都希望保持一致.

有些人继续使用经典课程是好的,除非他们需要新的行为,其他人说总是使用新的风格课程以避免以后拍摄自己的脚.如果你正在为一个人工作,做任何对你有益的事情; 如果它的共享项目与其他开发人员保持一致.

  • 谢谢,这清除了很多.我希望这更好地记录在案 (2认同)

ste*_*nci 9

在 Python 3 中,类隐式地扩展了对象,无论您自己是否这么说。

这里


S.L*_*ott 7

从这里开始:http://www.python.org/doc/newstyle/

另请阅读:http://docs.python.org/release/2.5.2/ref/node33.html

它是版本3中不再需要的几个Python 2临时解决方案之一.