我发现以下两项工作:
class Foo(): def a(self): print "hello" class Foo(object): def a(self): print "hello"
所有Python类都应该扩展对象吗?不扩展对象是否存在任何潜在问题?
在Python 2中,不继承自object将创建一个旧式类,除其他效果外,该类还会产生type不同的结果:
object
type
>>> class Foo: pass ... >>> type(Foo()) <type 'instance'>
与
>>> class Bar(object): pass ... >>> type(Bar()) <class '__main__.Bar'>
同样,多重继承的规则也有所不同,在这里我什至不尝试总结。我所见过的有关MI的所有好的文档都描述了新型类。
最终,旧式类在Python 3中消失了,并且继承自object隐式了。因此,除非您需要与旧软件向后兼容,否则请始终偏爱新样式类。