一著蛙、 類
什么是類辉哥?類的特點(diǎn)是什么桦山?
類: 類就是一組用來(lái)描述描述如何生成對(duì)象的代碼段。類就是能創(chuàng)建出類實(shí)例的對(duì)象醋旦。
-
類的特點(diǎn):Python中的類也是對(duì)象恒水,只要使用關(guān)鍵字class,Python的解釋器執(zhí)行的時(shí)候就會(huì)在內(nèi)存中創(chuàng)建一個(gè)對(duì)象饲齐,對(duì)象名就是類名钉凌。這個(gè)對(duì)象(類)自身?yè)碛袆?chuàng)建對(duì)象(類實(shí)例)的能力,這就是為什么稱這個(gè)對(duì)象為類的原因捂人。但是Python中的類本質(zhì)上還是一個(gè)對(duì)象御雕,所以Python中類可以:
將類賦給一個(gè)變量
可以拷貝類
可以為他增加屬性
可以把類作為函數(shù)參數(shù)去傳遞
類是對(duì)象矢沿,因此可以動(dòng)態(tài)的去創(chuàng)建類
-
示例:a
class Foo(object):
pass
Foo.new_aut = 'lingyue'
foo = Foo()def myClass(name): if name == 'foo': class Foo(): pass return Foo else: class Bar(): pass return Bar s = myClass('foo') x = myClass('bar')
-
類既然也是對(duì)象,那么這個(gè)類對(duì)象是誰(shuí)創(chuàng)建的呢饮笛?
- 創(chuàng)建類的元類咨察。
什么是元類?元類有那些特點(diǎn)福青?
-
元類:元類就是創(chuàng)建類(對(duì)象)的“東西”摄狱,即元類就是類的類,可以理解為元類就是類工廠无午。
def myfun():pass
class myclass(object):pass
age = 25
name = 'lingyue'
myc = myclass()print age.__class__ print name.__class__ print myfun.__class__ print myc.__class__ print age.__class__.__class__ print name.__class__.__class__ print myfun.__class__.__class__ print myc.__class__.__class__
輸出結(jié)果:
<type 'int'>
<type 'str'>
<type 'function'>
<class 'main.myclass'>
<type 'type'>
<type 'type'>
<type 'type'>
<type 'type'> -
type():type()就是一個(gè)元類媒役,type()是Python背后用來(lái)創(chuàng)建所有類的元類,
-
type函數(shù):type(類名宪迟,父類的元組(針對(duì)繼承的情況酣衷,可以為空),包含屬性的字典(名稱和值))次泽,type函數(shù)接受一個(gè)類的描述和參數(shù)穿仪,返回一個(gè)類。
Foo = type("Foo",(object,),{'name':'lineyue_type'})
print Foo
>>> <class 'main.MyClass'>
-
type函數(shù):type(類名宪迟,父類的元組(針對(duì)繼承的情況酣衷,可以為空),包含屬性的字典(名稱和值))次泽,type函數(shù)接受一個(gè)類的描述和參數(shù)穿仪,返回一個(gè)類。
"metaclass"屬性是什么意荤?這個(gè)屬性有什么作用啊片?
"metaclass"