<code>繼承是相對兩個類而言的父子關系,子類繼承了父類的所有公有屬性和方法,繼承可以重用已經存在的方法和屬性,減少代碼的重複編寫,Python 在類名後使用一對括号來表示繼承關系,括号中的類即為父類,如 class Myclass(ParentClass) 表示 Myclass(子類) 繼承了 ParentClass(父類) 的方法和屬性</code>
#!/usr/bin/python
class People(object):
color = 'yellow'
class Chinese(People): # 這裡表示 Chinese 繼承了 People
pass
cn = Chinese() # 因為 Chinese 繼承了 People ,是以可以直接調用 People 裡面的屬性和方法
print cn.color
cn.think()
如果父類定義了 init 方法,子類必須顯式調用父類的 init 方法:
!/usr/bin/python
class People(object):
class Chinese(People):
def init(self):
People.init(self,'red') # 顯式調用父類的init方法
cn = Chinese()
總結:

運作結果:
多重繼承即一個子類可以繼承多個父類
class A(object):
def aaa(self):
print "aaa"
class B(object):
def bbb(self):
print "bbb"
class C(A, B): # 子類 C 同時繼承了兩個父類 A 和 B
cn = C()
cn.aaa() # 可以直接調用父類的方法
cn.bbb()
當父類中出現多個自定義的init方法時,多重繼承隻執行第一個父類的init方法,其他不執行:
[root@localhost ~]# cat 1.py
class C(A, B): # 這裡繼承了 A 的 init 方法(誰在前面就先繼承誰的)
cn = C()
[root@localhost ~]# python 1.py # 執行結果可知隻執行了第一個父類的init方法
A
結果:
本文轉自方向對了,就不怕路遠了!51CTO部落格,原文連結:http://blog.51cto.com/jacksoner/2060034 ,如需轉載請自行聯系原作者