Python中元类

一. 前提:

  python中一切都是对象,要么是类的对象,要么是元类的对象,type元类是自己的对象。继承层次表示为type(元类)-->类(内置和用户自定义的) --> 类的实例。

二.  目的:

  创建类时自动改变类,换句话说就是创建类这种东西的东西。

三.  __metaclass__

  可以通过指定__metaclass__来使用用户自定义的元类创建类。

  class语句解析顺序

      class Myclass(object): pass

      Myclass里面的__metaclass__ --> 父类(object)中的__metaclass__ -->模块里的--> 默认的type

 

四. 使用方法:

  1.__metaclass__ = callablefunc

1 def  callablefunc(classname, bases, dct):
2         ...
3         数据处理
4         ...
5         return  type(classname, bases, newdct)

 

  2 __metaclass__ = 自定义元类

1 class MyMeta(type):
2         def __new__(cls, classname, bases, dct):
3                 ...
4                 对dct进行数据处理,产生newdct
5                 ...
6                 return super(MyMeta,cls).__new__(cls,classname,bases,newdct)

 

  

 

   

  

posted on 2015-11-29 20:15  chzb  阅读(254)  评论(0)    收藏  举报

导航