Python元類編程(type)

一、類是如何產(chǎn)生的
  • 表面上使用繼承創(chuàng)建一個(gè)類
  • 所有類都直接或間接繼承于object
    而真正創(chuàng)建類的是type
  • type
    type通常的用法--判斷對(duì)象的類型
    但除此之外揩慕,它最大的用途是來(lái)動(dòng)態(tài)的創(chuàng)建類缝彬,當(dāng)Python掃描到class語(yǔ)法的時(shí)候生棍,就會(huì)調(diào)用type函數(shù)進(jìn)行類的創(chuàng)建
  • type 創(chuàng)建類
    • type()需要接受三個(gè)參數(shù)
    • 1.類的名稱:若不指定也要傳入空字符串
    • 2.父類:注意以tuple的形式傳入寺鸥,沒(méi)有也要傳入控tuple:()丑掺,默認(rèn)的是object
    • 3.綁定的方法或?qū)傩裕鹤⒁庖詃ict的形式傳入
# 定義一個(gè)父類
class Parent:
    def foo(self):
        print('Parent')
        
# 準(zhǔn)備一個(gè)方法
def say(self):
    print('hello')
    
# 使用type來(lái)創(chuàng)建一個(gè)類
Person = type('Person',(Parent,),{'name':'person','say':say})

p = Person()

p.foo()
p.say()
# 結(jié)果
Parent
hello
元類
  • 類 -用來(lái)創(chuàng)建對(duì)象的模板
  • 那么获印,元類就是創(chuàng)建類的模板
  • type就是一個(gè)元類

就連 object 也是由type創(chuàng)建的
哈哈,就連type自己也是type創(chuàng)建的

In [1]: type(type)
Out[1]: type

In [2]: type(object)
Out[2]: type

In [3]: type(int)
Out[3]: type

In [4]: type(str)
Out[4]: type

In [5]: type(bool)
Out[5]: type

In [6]: type(list)                                                       
Out[6]: type

  • 有點(diǎn)神奇樣
    • str:用來(lái)創(chuàng)建字符串對(duì)象的類
    • int:用來(lái)創(chuàng)建整數(shù)對(duì)象的類
    • type:用來(lái)創(chuàng)建類對(duì)象的類
    • 等等...

示例

# 繼承type
class Base(type):
    def __new__(cls,*args,**kwargs):
        print('in Base')
        return super().__new__(cls,*args,**kwargs)
    
class Person(metaclass=Base):
    def __init__(self,name):
        self.name = name

p = Person('tom')

# 控制臺(tái)
in Base
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末街州,一起剝皮案震驚了整個(gè)濱河市兼丰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唆缴,老刑警劉巖鳍征,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異面徽,居然都是意外死亡蟆技,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門斗忌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人旺聚,你說(shuō)我怎么就攤上這事织阳。” “怎么了砰粹?”我有些...
    開(kāi)封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵唧躲,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我碱璃,道長(zhǎng)弄痹,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任嵌器,我火速辦了婚禮肛真,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘爽航。我一直安慰自己蚓让,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布讥珍。 她就那樣靜靜地躺著历极,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衷佃。 梳的紋絲不亂的頭發(fā)上趟卸,一...
    開(kāi)封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼锄列。 笑死图云,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的右蕊。 我是一名探鬼主播琼稻,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼饶囚!你這毒婦竟也來(lái)了帕翻?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤萝风,失蹤者是張志新(化名)和其女友劉穎嘀掸,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體规惰,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡睬塌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了歇万。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揩晴。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贪磺,靈堂內(nèi)的尸體忽然破棺而出硫兰,到底是詐尸還是另有隱情,我是刑警寧澤寒锚,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布劫映,位于F島的核電站,受9級(jí)特大地震影響刹前,放射性物質(zhì)發(fā)生泄漏泳赋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一喇喉、第九天 我趴在偏房一處隱蔽的房頂上張望祖今。 院中可真熱鬧,春花似錦轧飞、人聲如沸衅鹿。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)大渤。三九已至,卻和暖如春掸绞,著一層夾襖步出監(jiān)牢的瞬間泵三,已是汗流浹背耕捞。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烫幕,地道東北人俺抽。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像较曼,于是被迫代替她去往敵國(guó)和親磷斧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 了解元類之前枪孩,先了解幾個(gè)魔術(shù)方法: __new__憔晒、__init__、__call__ __new__: 對(duì)象的創(chuàng)...
    大富帥閱讀 9,150評(píng)論 2 16
  • 一蔑舞、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,754評(píng)論 0 10
  • 一元類 1類也是對(duì)象 在大多數(shù)編程語(yǔ)言中攻询,類就是一組用來(lái)描述如何生成一個(gè)對(duì)象的代碼段澎蛛。在Python中這一點(diǎn)仍然成...
    五行缺覺(jué)閱讀 1,063評(píng)論 0 1
  • 1.元類 1.1.1類也是對(duì)象 在大多數(shù)編程語(yǔ)言中,類就是一組用來(lái)描述如何生成一個(gè)對(duì)象的代碼段蜕窿。在Python中這...
    TENG書閱讀 1,278評(píng)論 0 3
  • 寒風(fēng)似刀,迎面吹 細(xì)雨如箭呆馁,落全身 一身輕紗薄似帳 吹的心兒直發(fā)涼
    繆繆喵嗚閱讀 185評(píng)論 0 3