代码改变世界

python动态构建类(类似声明)

2012-08-02 17:56  ubunoon  阅读(2689)  评论(0编辑  收藏  举报

对于类实例的动态构建,那是非常的简单。可要在代码中动态的构建类,然后该类还能够被使用,那得多么的强大呀。

 

在Python中,内建的__builtin__提供了一个type的方法,用该方法可以动态的构建一个类,是不是太强大了!

 

构建方法

__builtin__.type(name, bases, dct)

 

name: 类名

bases: 一个tuple,父类(支持多重继承,所以用tuple)

dct:一个dict类型,用来作为类的初始化元素。

 

比方

class_a = __builtin__.type('a', (object,), {})

 

这时就创建了一个类a的类型。

 

 

用处:

       在需要不同的派生类实现不同的功能,而这些功能又是在框架中实现的,这个时候就可能非常有用了。

       另一个就是与其他的框架做一个代理类的功能,因为动态实现,所以使得代理变得非常简单。

 

 于是乎,任何从type中继承的metaclass,也可以进行上面的方式来构建一个类。