Python自定義元類的實(shí)例講解
1、說(shuō)明
一個(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)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django為Form生成的label標(biāo)簽添加class方式
這篇文章主要介紹了django為Form生成的label標(biāo)簽添加class方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Python 刪除整個(gè)文本中的空格,并實(shí)現(xiàn)按行顯示
今天小編就為大家分享一篇Python 刪除整個(gè)文本中的空格,并實(shí)現(xiàn)按行顯示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python實(shí)現(xiàn)自動(dòng)上京東搶手機(jī)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)自動(dòng)上京東搶手機(jī)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02python數(shù)字圖像處理skimage讀取顯示與保存圖片
這篇文章主要為大家介紹了python數(shù)字圖像處理使用skimage讀取顯示與保存圖片示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06基于python pygame實(shí)現(xiàn)的兔子吃月餅小游戲
pygame是用來(lái)開(kāi)發(fā)游戲的一套基于SDL的模板,它可以是python創(chuàng)建完全界面化的游戲和多媒體程序,而且它基本上可以在任何系統(tǒng)上運(yùn)行,這篇文章主要給大家介紹了基于python pygame實(shí)現(xiàn)的兔子吃月餅小游戲的相關(guān)資料,需要的朋友可以參考下2021-09-09