python教程—子类化类“对象”的目的是什么?在Python中?-Python实用宝典

python教程—子类化类“对象”的目的是什么?在Python中?

所有Python内置都是object的子类,我遇到过很多用户定义的类也是。为什么?类对象的目的是什么?它只是一个空类,对吧?

所有Python内置都是object的子类,我遇到过很多用户定义的类也是。为什么?类对象的目的是什么?它只是一个空类,对吧?

回答

简而言之,它释放了自由的魔法小马。

在long中,Python 2.2及更早的版本使用了“旧式类”。它们是类的特定实现,并且有一些限制(例如,您不能子类化内建类型)。解决这个问题的方法是创建一个新的类样式。但是,这样做将涉及一些向后不兼容的更改。因此,为了确保为旧样式类编写的代码仍然有效,创建了object类作为所有新样式类的超类。
在python2中。类Foo: pass将创建一个旧式类,类Foo(object): pass将创建一个新式类。

在更长的代码中,请参见Guido的统一了Python 2.2中的类型和类

而且,一般来说,养成让所有类都成为新样式的习惯是一个好主意,因为有些东西(@property decorator就是其中之一)不能与旧式类一起工作。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
2

发表评论