Python 2.7中的旧式和新式类?

时间:2012-12-11 09:04:16

标签: python class python-2.7 new-style-class

  

可能重复:
  Old style and new style classes in Python

Python 2.7中新风格和旧式类的当前状态是什么?我不经常使用Python,但我依旧记得这个问题。文档似乎没有提到这个问题:The Python Tutorial: Classes。我还需要担心吗?一般来说,我应该声明我的类:

class MyClass:
    pass

class MyClass(object):
    pass

2 个答案:

答案 0 :(得分:22)

始终是子类"对象"。这些都是新式的。

  • 你已经准备好了python 3。

  • .super()这样的事情就是这样,如果你需要的话。

答案 1 :(得分:9)

您应该始终使用新的样式类。新式类是在Python编程语言中统一内置类型和用户定义类的努力的一部分。

新款式有几件事可以提供,例如:

  • 属性:由get / set方法
  • 定义的属性
  • 静态方法和类方法
  • 新的 getattribute 钩子,与 getattr 不同,被称为 对于每个属性访问,而不仅仅是属性不能 在实例中找到
  • 描述符:用于定义属性访问行为的协议 通过对象
  • 覆盖构造函数 new
  • 元类

Source.