天天看點

類的繼承、類的屬性總結、類的方法總結

<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 ,如需轉載請自行聯系原作者