关于python类定义的基本问题

时间:2010-12-16 12:54:10

标签: python programming-languages

说:

之间有什么区别
class foo:
    pass

class foo(object):
    pass

3 个答案:

答案 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。