__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的一个实例

浙公网安备 33010602011771号