从Python 3.x中的Python对象inheritance是否有必要或有用?

在python中创build一个类的时候,它可以inheritance自对象 ,就我所知,这个对象是一个特殊的内置python元素,它允许你的对象成为一个新的对象。

那么更新的版本(> 3.0和2.6)呢? 我search了类对象,但我得到了这么多的结果(出于一个显而易见的原因)。 任何提示?

谢谢!

你不需要从python 3inheritanceobject来获得新的风格。所有的类都是新风格的。

我意识到这是一个古老的问题,但值得注意的是,即使在python 3中,这两件事也不是完全相同的东西。

如果你明确地从objectinheritance,那么你实际上在做什么是从builtins.objectinheritance, 而不pipe当时指向什么。

因此,我可能有一些(非常古怪)模块,因为某种原因覆盖了对象。 我们将第一个模块称为“newobj.py”:

 import builtins old_object = builtins.object # otherwise cyclic dependencies class new_object(old_object): def __init__(self, *args, **kwargs): super(new_object, self).__init__(*args, **kwargs) self.greeting = "Hello World!" builtins.object = new_object #overrides the default object 

然后在其他文件(“klasses.py”)中:

 class Greeter(object): pass class NonGreeter: pass 

然后在第三个文件中(我们可以运行):

 import newobj, klasses # This order matters! greeter = klasses.Greeter() print(greeter.greeting) # prints the greeting in the new __init__ non_greeter = klasses.NonGreeter() print(non_greeter.greeting) # throws an attribute error 

所以你可以看到,在它明确地从对象inheritance的情况下,我们得到一个不同于你允许隐式inheritance的行为。