python学习笔记-Metaclass理解
来源:互联网 发布:淘宝卖家客户端下载 编辑:程序博客网 时间:2024/05/20 14:19
什么叫做元类
Metaclass是创建class的东西。
一个class是用来创建对象的,但Python中的类也是对象。
Metaclass就是用来创建类这些对象的,它们是类的类,可以形象化地理解为:
MyClass = MetaClass()
MyObject = MyClass()
python 中type 函数可以这样使用:
MyClass = type(‘MyClass’, (), {})
这是因为 type 实际上是个 metaclass , Python使用 type 这个元类来创建所有的类。
为什么 type 是小写开头的,而不是 Type 呢?既然它是个元类!
大概是因为和 str , int 来保持一致吧, str也是一个类,用来创建字符串。
你可以检查下对象的 class 属性来看看它们的类是谁. Python中万物都是对象:
>>> age = 7>>> age.__class__<type 'int'>>>> name = 'tom'>>> name.__class__<type 'str'>>>> def fun():pass...>>> foo.__class__<type 'function'>>>> class Cat(object): pass...>>> b = Cat()>>> b.__class__<class '__main__.Cat'>>>>
那么, class 的 class 属性又是谁?
>>> a = 2>>> a.__class__.__class__<type 'type'>>>> name = 'tom'>>> name.__class__.__class__<type 'type'>
所以,元类是用来创建类的。可以叫元类为 类工厂
type 是Python使用的内建元类,当然,Python允许建立自己的元类.
0 0
- python学习笔记-Metaclass理解
- python 学习笔记 metaclass详解
- python metaclass的理解
- python笔记:深刻理解Python中的元类(metaclass)
- 学习Python:深刻理解Python中的元类(metaclass)
- python 学习笔记——python metaclass 元类
- Python装饰器、metaclass、abc, six模块学习笔记
- Python装饰器、metaclass、abc模块学习笔记
- Python装饰器、metaclass、abc模块学习笔记
- 深刻理解Python中的元类(metaclass)
- 深刻理解Python中的元类(metaclass)
- 深刻理解Python中的元类(metaclass)
- 深刻理解Python中的元类(metaclass)
- 深刻理解Python中的元类(metaclass)
- 深刻理解Python中的元类(metaclass)
- 深刻理解Python中的元类(metaclass)
- 深刻理解Python中的元类(metaclass)
- 深刻理解Python中的元类(metaclass)
- init.rc语法解析(转载)
- 二、php的运算符和表达式
- Java集合框架——Collection
- MySql基础5
- javascript 静态变量与实例变量
- python学习笔记-Metaclass理解
- oracle 体系结构
- 编译mapnik(win7 环境下vs2008编译mapnik 0.7.1 成功)
- android中使用LitePal操作数据库
- 链表的删除
- Oracle 数据库中创建、查看“文件夹“的方式
- 设计模式
- 三、php函数和编码规范
- 四、流程控制语句