對於類實例的動態構建,那是非常的簡單。可要在代碼中動態的構建類,然后該類還能夠被使用,那得多么的強大呀。
在Python中,內建的__builtin__提供了一個type的方法,用該方法可以動態的構建一個類,是不是太強大了!
構建方法
__builtin__.type(name, bases, dct)
name: 類名
bases: 一個tuple,父類(支持多重繼承,所以用tuple)
dct:一個dict類型,用來作為類的初始化元素。
比方
class_a = __builtin__.type('a', (object,), {})
這時就創建了一個類a的類型。
用處:
在需要不同的派生類實現不同的功能,而這些功能又是在框架中實現的,這個時候就可能非常有用了。
另一個就是與其他的框架做一個代理類的功能,因為動態實現,所以使得代理變得非常簡單。
於是乎,任何從type中繼承的metaclass,也可以進行上面的方式來構建一個類。