Python自定義元類的實(shí)例講解
一個(gè)類沒(méi)有聲明自己的元類,默認(rèn)他的元類就是type,除了使用元類type,用戶也可以通過(guò)繼承type來(lái)自定義元類。
2、實(shí)例我們可以使用類屬性 __metaclass__ 把一個(gè)類的創(chuàng)建過(guò)程,轉(zhuǎn)交給其它地方。
class A(object): __metaclass__ = ... # 這個(gè)類的創(chuàng)建轉(zhuǎn)交給其他地方 pass
先定義了類 A,然后定義了一個(gè)類屬性 __metaclass__,這個(gè)屬性表示創(chuàng)建類 A 的過(guò)程,轉(zhuǎn)交給其它地方處理。
類屬性 __metaclass__ 可以是一個(gè)方法,也可以是一個(gè)類。
內(nèi)容擴(kuò)展:
用元類創(chuàng)建類
前面講到過(guò),type 有一個(gè)作用是用于檢查對(duì)象的類型,其實(shí)它還有另外一個(gè)作用就是作為元類動(dòng)態(tài)地創(chuàng)建類(對(duì)象)。
>>> Person = type('Person', (), {'live':True})>>> Person<class ’__main__.Person’>
Person 就是一個(gè)類,它等價(jià)于:
>>> class Person:... live = True...>>> Person<class ’__main__.Person’>
用元類 type 創(chuàng)建類的語(yǔ)法是:
type(類名,基類元組(可以為空), 屬性字典)
到此這篇關(guān)于Python自定義元類的實(shí)例講解的文章就介紹到這了,更多相關(guān)Python如何自定義元類內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. XML入門(mén)精解之結(jié)構(gòu)與語(yǔ)法2. SpringMVC+Jquery實(shí)現(xiàn)Ajax功能3. 匹配模式 - XSL教程 - 44. ASP.NET MVC使用異步Action的方法5. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera6. JS中map和parseInt的用法詳解7. ASP中if語(yǔ)句、select 、while循環(huán)的使用方法8. XML入門(mén)的常見(jiàn)問(wèn)題(一)9. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼10. 詳談ajax返回?cái)?shù)據(jù)成功 卻進(jìn)入error的方法
