python創(chuàng)建一個(gè)類很簡(jiǎn)單只需要定義它就可以了.
1
2
|
class Cat: pass |
就像這樣就可以了,通過(guò)創(chuàng)建子類我們可以繼承他的父類(超類)的方法。這里重新寫一下cat
1
2
3
4
5
6
7
8
|
class Cat: name = 'cat' class A(Cat): pass print A.name # cat |
經(jīng)典類
我們也可以這樣,讓A多繼承。
1
2
3
4
5
6
7
8
9
10
11
12
|
class Cat: name = 'cat' class Dog: name = 'dog' class A(Cat, Dog): pass print A.name # cat |
如果Cat類沒(méi)有name屬性呢?
1
2
3
4
5
|
class Cat: pass ... print A.name # dog |
A就會(huì)在其他的父類中找name這個(gè)屬性。如果繼承的兩個(gè)父類都是繼承自Animal類而Animal類也有name屬性呢?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Animal: name = 'animal' class Cat(Animal): pass class Dog(Animal): name = 'dog' class A(Cat, Dog): pass print A.name # animal |
這樣A就不會(huì)在Dog類中找而是會(huì)在Animal上找到name, 這種類叫經(jīng)典類。類的解析順序是一種從左到右深度優(yōu)先的搜索。也就是A–> Cat–> Animal –> Dog。
新式類
python還有一種創(chuàng)建類的方式,就是使用新式類(建議使用), 都繼承自object這個(gè)基類, 新式類的搜索規(guī)則是從左到右逐級(jí)查詢。也就是A–> Cat –> Dog –> Animal。
1
2
|
class Cat( object ): pass |