说:
之间有什么区别class foo:
pass
和
class foo(object):
pass
答案 0 :(得分:4)
后者声明new-style class。
答案 1 :(得分:3)
“类和实例有两种形式:旧式(或经典)和新式。” http://docs.python.org/reference/datamodel.html#new-style-and-classic-classes
答案 2 :(得分:2)
旧式类不扩展内置的“对象”类型。新式课程。如果您正在编写新代码,请使用新式类。如果您正在使用已经使用旧式类的旧代码,那么......我说它只是为了确保所有类的行为方式相同。
这是差异的一个很好的概述:http://docs.python.org/release/2.5.2/ref/node33.html 以下是更多链接的集合:http://www.python.org/doc/newstyle/
我会注意到Python 2.2中引入了新式类,所以如果你看到使用旧式类的代码,并且你将要使用它,比如Python 2.7,你可能会想要运行一个快速测试,以确保它不会老化,以至于它不适用于较新版本的Python。