__new__和__metaclass__

注意类默认是由type来创建的。注意__metaclass__等于谁,表示由谁去创建这个类

class Foo(object):

  def __init__(self):

    pass

注意上边也是一个对象

obj=Foo()

注意下边的形式:

def func(self):

  print 'hello wupeiqi'

Foo=type('Foo',(object),{'func':func})

type第一个参数:类名

type第二个参数:当前类的基类

type第三个参数:类的成员

注意上述表示创建了一个类。

类是可以创建对象的,而这个类是由type创建的。默认情况下所有的类都是由type创建的。

class Foo(object):

  __metaclass__=MyType//这句话表示这个类是由MyType创建的。也就是让MyType去创建这个Foo。则MyType后面得加个括号。

obj=Foo()//这句话执行init方法。其实要执行init方法要经过好几个步骤。对于Foo这个类来说,它是由MyType创建的

Foo类=MyType()//注意Foo类是MyType的一个实例

 

posted @ 2017-03-01 09:13  关泉珍  阅读(35)  评论(0)    收藏  举报