零基礎小白學Python之多繼承習題演練

2021-10-06 16:01:03 字數 2775 閱讀 8353

1.1 自定義人類(person)

需求:

睡覺(sleep)

工作(work)

列印物件,能列印出物件身上的所有屬性值

在python中,繼承體現類與類之間的關聯關係,如果乙個類a裡面的屬性和方法被乙個類b繼承,那麼類a就是基類,也叫作父類,類b就是派生類,也叫子類

class

person

(object):

def__init__(self,name,***,age,country)

self.name = name

self.*** =***

self.age = age

self.country = country

defeat(self)

:print

("%s要吃飯"

% self.name)

defsleep

(self)

:print

("%s要睡覺"

% self.name)

defwork

(self)

:print

("%s要睡覺"

% self.name)

def__str__

(self)

:return

"名字:%s 性別:%s 年齡:%s,國籍:%s"

%(self.name,self.***,self.age,self.country)

p=perseon(

"小王"

,"男",19

,"中國"

)print

(p)

1.2 自定義學生類(student)

需求:

睡覺(sleep)

工作(work)

列印物件,能列印出物件身上的所有屬性值

person作為父類,student是它的子類,繼承了所有person的屬性和方法

子類繼承了多個父類,如果父類類名修改了,那麼子類也要涉及多次修改。而且需要重複寫多次呼叫,顯得**臃腫。

使用super() 可以逐一呼叫所有的父類方法,並且只執行一次。

class student

(person)

:def

__init__

(self,name,***,age,country,school_name,no)

:super()

.__init__(name,***,age,country)

self.school_name = school_name

self.no = no

defwork

(slef)

:print

("%s要學習"

%self.name)

def__str__

(self)

: ret =

super

()__str__():

return

"%s 學校:%s 學號:%s"

%(ret,self.school.name,self.no)

s = student(

"小王"

,"男",20

,"中國"

,"社會大學"

,"001"

)s.work(

)print

(s)

注意:如果繼承了多個父類,且父類都有同名方法,則預設只執行第乙個父類的(同名方法只執行一次,目前super()不支援執行多個父類的同名方法)

super() 在python2.3之後才有的機制,用於通常單繼承的多層繼承。

1.3 自定義工人類(worker)

需求:

睡覺(sleep)

工作(work)

列印物件,能列印出物件身上的所有屬性值

與1.2需求相似,注意繼承性

class

woker

(person)

:def

__init__

(self, name, ***, age, country, company, work_age)

: spuer(woker,self)

.__init__(name,***,age,country)

self.company = company

self.work_age = work_age

defwork

(self)

:print

("%s要煉鋼"

% self.name)

def__str__

(self)

: ret =

super()

.__str__(ret,company,work_age)

return

"%s 公司:%s 工齡:%s"

%(ret,self.company,work_age)

w = worker(

"老李"

,"男"

,"38"

,"中國"

,"顏藝公司",10

)w.work(

)print

(w)

零基礎學Python

零基礎學python 1 1 python是一門指令碼語言 2 python的優勢 1 語法和結構比較簡單,易入門 2 能夠跨平台使用 3 應用範圍廣,設計到作業系統 3d動畫 web 雲計算,企業應用等多方面。3 idle 是乙個python shell,類似於windows的cmd視窗 4 pr...

零基礎學python 一

每次學習語言總是要了解其背景python也不例外。首先python的創始人為 guido van rossum 1989年聖誕節期間,在 阿姆斯特丹 guido為了打發聖誕節的無趣,決心開發乙個新的指令碼 解釋程式 做為abc 語言的一種繼承。看看人家外鬼子程式設計師 哎不得不佩服。他在業餘時間開發...

零基礎學Python筆記

alt n 最遠一條語句 alt p 最近一條語句 tab的兩個作用 1 縮排 2 補足 isinstance str1,str 判斷型別 s為字串 s.isalnum 所有字元都是數字或者字母,為真返回 ture,否則返回 false。s.isalpha 所有字元都是字母,為真返回 ture,否則...