python中的多繼承

2021-08-11 03:49:49 字數 2722 閱讀 2807

一 介紹

python同樣有限的支援多繼承形式。多繼承的類定義形如下例:

class derivedclassname(base1, base2, base3): .

. .需要注意圓括號中父類的順序,若是父類中有相同的方法名,而在子類使用時未指定,python從左至右搜尋 即方法在子類中未找到時,從左到右查詢父類中是否包含方法。

二 **

#類定義

class

people

:

#定義基本屬性

name

=''

age

=0

#定義私有屬性,私有屬性在類外部無法直接進行訪問

__weight

=0

#定義構造方法

def

__init__

(self,n

,a,w

):

self

.name

=n

self

.age

=a

self

.__weight

=w

def

speak

(self

):

print

("%s 說: 我 %d 歲。"

%(self

.name

,self

.age

))

#單繼承示例

class

student

(people

):

grade

=''

def

__init__

(self,n

,a,w

,g):

#呼叫父類的構函

people

.__init__

(self,n

,a,w

)

self

.grade

=g

#覆寫父類的方法

def

speak

(self

):

print

("%s 說: 我 %d 歲了,我在讀 %d 年級"

%(self

.name

,self

.age

,self

.grade

))

#另乙個類,多重繼承之前的準備

class

speaker

():

topic

=''

name

=''

def

__init__

(self,n

,t):

self

.name

=n

self

.topic

=t

def

speak

(self

):

print

("我叫 %s,我是乙個演說家,我演講的主題是 %s"

%(self

.name

,self

.topic

))

#多重繼承

class

sample

(speaker

,student

):

a

=''

def

__init__

(self,n

,a,w

,g,t

):

student

.__init__

(self,n

,a,w

,g)

speaker

.__init__

(self,n

,t)

test

=sample

("tim",25

,80,4

,"python"

)

test

.speak

()#方法名同,預設呼叫的是在括號中排前地父類的方法

三 執行結果

我叫 tim,我是乙個演說家,我演講的主題是 python

Python中的多繼承

python和c 一樣,支援多繼承。概念雖然容易,但是困難的工作是如果子類呼叫乙個自身沒有定義的屬性,它是按照何種順序去到父類尋找呢,尤其是眾多父類中有多個都包含該同名屬性。class p1 object deffoo self print p1 foo class p2 object deffoo...

Python中的多繼承

coding utf8 1.多繼承 子類有多個父類 class human def init self,self.defp self print 這是human的方法 class person def init self,name self.name name defp self print 這是p...

python中的多繼承

python和c 一樣,支援多繼承。概念雖然容易,但是困難的工作是如果子類呼叫乙個自身沒有定義的屬性,它是按照何種順序去到父類尋找呢,尤其是眾多父類中有多個都包含該同名屬性。class p1 object def foo self print p1 foo class p2 object def f...