python 元類是啥萍嬉,網(wǎng)上找資料看了兩個小時乌昔,確實是太菜了。
以下總結(jié)下:
元類就是繼承的類壤追,要成為可繼承的類磕道,首先要繼承type,且要復(fù)寫new方法行冰。
要繼承元類溺蕉,使用metaclass來指定,使用方法:
class test(metaclass=MyClass):
type是內(nèi)置默認的元類悼做,type可以一行代碼創(chuàng)建類:
T = type('classname', (classAA,), {'attr1': 45, 'attr2': 97,'function': func})
classname 是類名
classAA是要繼承的類名
att1和att2是變量名疯特,后面就是值了。
func是方法名肛走,這個方法要單獨寫好的漓雅,如果有入?yún)ⅲ{(diào)用時:T().func("傳參")
補充說明下:元類和繼承的類是有差異的,
繼承了元類后邻吞,訪問dict组题,返回的數(shù)據(jù)包括了元類的所有屬性。
繼承普通的類抱冷,訪問dict崔列,返回的數(shù)據(jù)只有當前類的屬性。