【发布时间】:2011-05-26 13:07:33
【问题描述】:
和说有什么区别:
class foo:
pass
和
class foo(object):
pass
?
【问题讨论】:
-
对象中应该是小写的'o'
-
那么,什么是'calss'呢? :P 也许编辑你的标题:)
标签: python programming-languages
和说有什么区别:
class foo:
pass
和
class foo(object):
pass
?
【问题讨论】:
标签: python programming-languages
后者声明一个new-style class。
【讨论】:
“类和实例有两种风格:旧式(或经典)和新式。” http://docs.python.org/reference/datamodel.html#new-style-and-classic-classes
【讨论】:
旧式类不扩展内置的“对象”类型。新式班就可以。如果您正在编写新代码,请使用新型类。如果您正在使用已经在使用旧样式类的旧代码,那么……我说使用它只是为了确保所有类的行为方式相同。
以下是差异的简要说明:http://docs.python.org/release/2.5.2/ref/node33.html 以下是更多链接集合:http://www.python.org/doc/newstyle/
我会注意到 Python 2.2 中引入了新样式类,因此,如果您看到使用旧样式类的代码,并且您打算将它与 Python 2.7 一起使用,您可能想要运行一个快速测试以确保它没有老化到不能在较新版本的 Python 中工作。
【讨论】: