type()
? ? ? ? type函數(shù)即可返回一個(gè)對(duì)象的類型汤徽,也可動(dòng)態(tài)地創(chuàng)建一個(gè)新的類。如:
?第一個(gè)參數(shù)是類名,第二個(gè)參數(shù)是類的父類谋国,第三個(gè)參數(shù)是類中的屬性——以字典的形式傳入。整句話執(zhí)行結(jié)束后迁沫,就相當(dāng)于創(chuàng)建了一個(gè)類名為Demo的類烹卒。
? ? ? ? type()創(chuàng)建了一個(gè)類,并且使用變量d來作為類的引用弯洗。
可以看出在Python中旅急,類也是對(duì)象,可以動(dòng)態(tài)的創(chuàng)建類牡整。這就是當(dāng)你使用關(guān)鍵字class時(shí)Python在幕后做的事情藐吮,而這就是通過元類來實(shí)現(xiàn)的。
python中,?類也是一個(gè)對(duì)象谣辞,對(duì)象名就是類名迫摔,該對(duì)象擁有創(chuàng)建對(duì)象(類實(shí)例)的能力。做為一個(gè)變量泥从,可以為它添加新的屬性句占,可以將它賦值給另一個(gè)變量,也可以當(dāng)作參數(shù)傳遞躯嫉。如:
因?yàn)轭愐彩菍?duì)象纱烘,所以可以使用class關(guān)鍵字動(dòng)態(tài)地創(chuàng)建它們。而元類就是創(chuàng)建類的類祈餐,它負(fù)責(zé)創(chuàng)建類擂啥,而由類創(chuàng)建類的實(shí)例。
?元類就是類的類帆阳,它負(fù)責(zé)創(chuàng)建不同的類哺壶,而由不同的類創(chuàng)建不同的類實(shí)例。如下:
元類通過__new__方法操作新建成的類蜒谤,比如添加方法以及添加屬性等山宾。
? ? ? ? 新建的類通過metaclass指定它對(duì)應(yīng)的元類。