编程

python进阶- 元类编程:type和object的理解

2019-03-25  本文已影响0人  Jayce_xi

本文基于python3

0.引入

元类就是深度的魔法,99%的用户应该根本不必为此操心。如果你想搞清楚究竟是否需要用到元类,那么你就不需要它。那些实际用到元类的人都非常清楚地知道他们需要做什么,而且根本不需要解释为什么要用元类。
--Python界的领袖 Tim Peters

1.困惑

如果你还没看过元类编程,推荐你看完再来看这篇文章。
来看这篇文章的童鞋都是在看完一部分python的元类编程后,产生了宇宙究极问题:到底是先有鸡还是先有蛋。我当时也十分纠结到底type和object谁是谁的爸爸。

2.分析

typeobject之间的关系:

>>> object.__class__
<type 'type'>

以上说明object类是type元类的一个实例对象。

>>> object.__bases__
()

object这个类的父类为空,说明 object类已经处于继承链条的顶端,是所有类的父类。

>>> type.__class__
<type 'type'>

说明type也是type实例出来的。

>>> type.__base__
<type 'object'>

type的父类是object

刚刚表达大致的关系如下(手残勿喷):

type和object的关系 .jpg

3. 总结

4.相关文章推荐

Python 的 type 和 object 之间是怎么一种关系?
python 中type和object的关系
Python中的元类是什么?
Python 元类 (MetaClass) 小教程

5. 推荐我的个人博客

上一篇下一篇

猜你喜欢

热点阅读