Python 這門(mén)編程語(yǔ)言,除了語(yǔ)法簡(jiǎn)潔好學(xué)外,還有一些很大的靈活性焰望。比如說(shuō)創(chuàng)建一個(gè)類,我們常用的方法是:
class Ousi(object):
def __init__(self):
pass
這是我們常用的一種創(chuàng)建類的方法已亥。
而我們知道熊赖,type 有一個(gè)作用是用于檢查對(duì)象的類型,其實(shí)它還有另外一個(gè)作用就是作為元類動(dòng)態(tài)地創(chuàng)建類(對(duì)象)虑椎。
>>> Person = type("Person", (), {"live":True})
>>> Person
<class '__main__.Person'>
>>> Person = type("Person", (object,), {"live":True})
>>> Person
<class '__main__.Person'>
Person 就是一個(gè)類震鹉,它等價(jià)于:
>>> class Person(object):
... live = True
...
>>> Person
<class '__main__.Person'>
用元類 type 創(chuàng)建類的語(yǔ)法是:
type(類名,父類元組(可以為空), 屬性字典)