首页 > 编程语言 > 详细

python 元类与定制元类

时间:2015-09-25 10:52:24      阅读:340      评论:0      收藏:0      [点我收藏+]

1:元类

  元类:类的创建与管理者

  所有类的元类是type

  class a:
      pass

  print(type(a))

  结果:<class ‘type‘>

 

2:定制元类

  类的实例化过程:(可看类的基础与要点

          1)调用__new__()创建实例

          2)调用__init__()初始化上面创建出来的实例

  所以:定制实例便是改变父类的__new__()或__init__()方法

  例子:

 1 class MyMeta(type):
 2     def __init__(self,name,bases,dicts):
 3         print(Init Instance.)
 4 
 5     def __new__(cls,name,bases,dicts):
 6         dicts[info] = lambda self:print(Djx.)   #追加实例方法info()
 7         res = type.__new__(cls,name,bases,dicts)    #调用父类type的new方法实例化实例
 8         res.company = MaiZi                       #追加属性
 9         return res                                  #返回实例
10 
11 class custom(metaclass=MyMeta):                     #用关键字表明元类不是type而是MyMeta
12     pass
13 
14 if __name__ == __main__:
15     cus = custom()
16     cus.info()
17     print(cus.company)
18 
19 
20 #Python2.x的写法
21 #class cus:
22  #   __metaclass__ = MyMeta
23   #  pass

  运行结果:    

      Init Instance.
      Djx.
      MaiZi

python 元类与定制元类

原文:http://www.cnblogs.com/pengsixiong/p/4837214.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!