python創建一個類很簡單只需要定義它就可以了.
1
2
|
class Cat: pass |
就像這樣就可以了,通過創建子類我們可以繼承他的父類(超類)的方法。這里重新寫一下cat
1
2
3
4
5
6
7
8
|
class Cat: name = 'cat' class A(Cat): pass print A.name # cat |
經典類
我們也可以這樣,讓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類沒有name屬性呢?
1
2
3
4
5
|
class Cat: pass ... print A.name # dog |
A就會在其他的父類中找name這個屬性。如果繼承的兩個父類都是繼承自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就不會在Dog類中找而是會在Animal上找到name, 這種類叫經典類。類的解析順序是一種從左到右深度優先的搜索。也就是A–> Cat–> Animal –> Dog。
新式類
python還有一種創建類的方式,就是使用新式類(建議使用), 都繼承自object這個基類, 新式類的搜索規則是從左到右逐級查詢。也就是A–> Cat –> Dog –> Animal。
1
2
|
class Cat( object ): pass |