2010-08-02 49 views
26

所以我刚刚学习python(我知道很多其他语言),我对某些东西感到困惑。我认为这是由于缺少文档(至少我能找到)。在一些网站,我读过,你应该从object派生类:从python中的`object`派生类

 

class Base(object): 
    pass 
 

但我看不出有什么,做或为什么或什么时候你应该这样做。有没有官方文件,我错过了?这是一个3.x功能吗?

+0

我看了这里http://docs.python.org/tutorial/classes.html – Falmarri 2010-08-02 01:09:09

回答

22

主要是它不无论你是否从对象继承,都会产生影响,但是如果你不知道有什么bug会在你忘记了你决定不打扰的时候赶上你。

一些微妙的事情就无法正常工作,如果你不最终从对象继承:在经典类

  1. 使用属性只有部分工作:get作品还好,但set做奇怪的事情。
  2. 传统类中的多重继承的行为与源自对象的类的行为不同。
  3. 如果您尝试将经典类与那些子类对象混合,那么多重继承也不起作用。无论你做什么,你想要保持一致。

有些人可以继续使用经典课程,除非他们需要新的行为,其他人则说总是使用新式课程,以避免后来在脚下自我射击。如果你正在从事单人项目的工作,对你有好处;如果其共享项目与其他开发者保持一致。

+2

谢谢,这清理了很多。我希望这被记录得更好 – Falmarri 2010-08-03 19:18:13

2

在Python 3中,类隐式扩展对象,不管你是否自己这么说。

请参阅here