A basic question about python class definitions
本问题已经有最佳答案,请猛点这里访问。
这两种说法有什么区别:
1 2 | class foo: pass |
和
1 2 | class foo(object): pass |
?
后者声明了一个新的样式类。
"类和实例有两种风格:旧风格(或经典)和新风格。"http://docs.python.org/reference/datamodel.html新样式和经典类
旧样式类不会扩展内置的"object"类型。新的样式类可以。如果要编写新代码,请使用新样式的类。如果您使用的是已经使用旧样式类的旧代码,那么……我说,跟着它走,只是为了确保所有的类都以相同的方式工作。
这里有一个很好的差异概要:http://docs.python.org/release/2.5.2/ref/node33.html下面是更多链接的集合:http://www.python.org/doc/newstyle/
我要注意的是,在python 2.2中引入了新的样式类,所以如果您看到使用旧样式类的代码,并且要将其与python 2.7一起使用,那么您可能需要运行一个快速测试,以确保它不会太老,以致于在更新版本的python中不起作用。