Python 中旧式类和新式类有什么区别?
pythonserver side programmingprogramming
在 Python 2.x 中,根据是否存在内置类型作为基类,有两种类型的类 −
"经典"类型或旧式类没有内置类型作为基类: >>> class OldSpam: # 没有基类 ... pass >>> OldSpam.__bases__ ()
"新"类型的类:它们有一个内置类型作为基类,这意味着,直接或间接地,它们有一个对象作为基类 −
>>> class NewSpam(object): # 直接从对象继承 ... pass >>> NewSpam.__bases__ (<type 'object'>,) >>> class IntSpam(int): # 间接从对象继承... ... pass >>> IntSpam.__bases__ (<type 'int'>,) >>> IntSpam.__bases__[0].__bases__ # ... 因为 int 继承自 object (<type 'object'>,)
编写类时,人们总是希望使用新式类。这样做的优点很多,下面列出其中一些 −
支持描述符。具体来说,使用描述符可以实现以下构造 −
classmethod − 接收类作为隐式参数而不是实例的方法。
staticmethod − 不接收隐式参数 self 作为第一个参数的方法。
properties with property:创建用于管理属性的获取、设置和删除的函数。
Python 3.x 仅隐式支持新式类。在类声明中无需在括号中提及 object 一词。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

