Python面向?qū)ο箢惱^承和組合實(shí)例分析
本文實(shí)例講述了Python面向?qū)ο箢惱^承和組合。分享給大家供大家參考,具體如下:
在python3中所有類默認(rèn)繼承object,凡是繼承了object的類都成為新式類,以及該子類的子類Python3中所有的類都是新式類,沒有集成object類的子類成為經(jīng)典類(在Python2中沒有集成object的類以及它的子類都是經(jīng)典類
繼承式用來創(chuàng)建新的類的一種方式,好處是減少重復(fù)代碼
class People: def __init__(self,name,age): self.name=name self.age=age def walking(self): print('%s is walking ' %self.name) def talking(self): print('%s is talking '%self.name) class Teacher(People): pass class Student(People): pass t1=Teacher('egon',18) print(t1.name,t1.age) t1.walking() t1.talking() s1=Student('xiaobai',22) print(s1.name,s1.age) s1.talking() s1.walking()
執(zhí)行結(jié)果
egon 18
egon is walking
egon is talking
xiaobai 22
xiaobai is talking
xiaobai is walking
class People: def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex def walking(self): print('%s is walking ' %self.name) def talking(self): print('%s is talking '%self.name) class Teacher(People): def __init__(self,name,age,sex,level,salary): People.__init__(name,age,sex) self.level=level self.salary=salary def teaching(self): People.talking(self) print('%s is teaching'%self.name) class Student(People): def __init__(self,name,age,sex,group): People.__init__(name,age,sex) self.group=group def studying(self): People.talking(self) print('%s is studying'%self.name)
組合
class Date: def __init__(self,year,mon,day): self.year=year self.mon=mon self.day=day def tell_birth(self): print('出生于<%s>年 <%s>月 <%s>日'%(self.year,self.mon,self.day)) class Teacher: def __init__(self,name,age,sex,year,month,day): self.name=name self.age=age self.sex=sex self.birth=Date(year,month,day) def teaching(self): print('%s is teaching'%self.name) class Student: def __init__(self,name,age,sex,year,mon,day): self.name=name self.age=age self.sex=sex self.birth=Date(year,mon,day) def studying(self): print('%s is studying'%self.name) xiaobai=Student('xiaobai',22,'male','1995','3','16') xiaobai.birth.tell_birth()
執(zhí)行結(jié)果
出生于<1995>年 <3>月 <16>日
繼承和組合
class People: def __init__(self,name,age,sex,year,mon,day): self.name=name self.age=age self.sex=sex self.birth=Date(year,mon,day) def walking(self): print('%s is walking ' %self.name) def talking(self): print('%s is talking '%self.name) class Date: def __init__(self,year,mon,day): self.year=year self.mon=mon self.day=day def tell_birth(self): print('出生于<%s>年 <%s>月 <%s>日'%(self.year,self.mon,self.day)) class Teacher(People): def __init__(self,name,age,sex,level,salary,year,mon,day): People.__init__(self,name,age,sex,year,mon,day) self.level=level self.salary=salary def teaching(self): People.talking(self) print('%s is teaching'%self.name) class Student(People): def __init__(self,name,age,sex,year,mon,day,group): People.__init__(self,name,age,sex,year,mon,day) self.group=group def studying(self): People.talking(self) print('%s is studying'%self.name)
父類要限制
1、子類必須有父類的方法
2、子類實(shí)現(xiàn)的方法必須跟父類的方法的名字一樣
import abc class File(metaclass=abc.ABCMeta): @abc.abstractclassmethod def read(self): pass @abc.abstractclassmethod def write(self): pass
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- python面向?qū)ο笾惖睦^承詳解
- Python面向?qū)ο蠓庋b繼承和多態(tài)示例講解
- Python面向?qū)ο蟪绦蛟O(shè)計(jì)之繼承、多態(tài)原理與用法詳解
- Python面向?qū)ο笾^承原理與用法案例分析
- Python 面向?qū)ο笾庋b、繼承、多態(tài)操作實(shí)例分析
- Python面向?qū)ο笾^承和多態(tài)用法分析
- Python3.5面向?qū)ο蟪绦蛟O(shè)計(jì)之類的繼承和多態(tài)詳解
- Python3.5面向?qū)ο笈c繼承圖文實(shí)例詳解
- Python面向?qū)ο蟪绦蛟O(shè)計(jì)類的封裝與繼承用法示例
- Python面向?qū)ο蟪绦蛟O(shè)計(jì)多繼承和多態(tài)用法示例
- Python面向?qū)ο蟪绦蛟O(shè)計(jì)之類的定義與繼承簡(jiǎn)單示例
- Python面向?qū)ο笾惖亩x與繼承用法示例
- Python面向?qū)ο箢惥帉懠?xì)節(jié)分析【類,方法,繼承,超類,接口等】
- Python面向?qū)ο蟪绦蛟O(shè)計(jì)OOP入門教程【類,實(shí)例,繼承,重載等】
- Python面向?qū)ο笾^承和組合用法實(shí)例分析
- Python面向?qū)ο蟪绦蛟O(shè)計(jì)之繼承與多繼承用法分析
- Python面向?qū)ο箢惖睦^承實(shí)例詳解
- Python 面向?qū)ο缶幊痰娜筇匦灾^承
相關(guān)文章
python生成隨機(jī)驗(yàn)證碼(中文驗(yàn)證碼)示例
這篇文章主要介紹了python生成中文隨機(jī)驗(yàn)證碼示例,需要的朋友可以參考下2014-04-04Python在畫圖時(shí)使用特殊符號(hào)的方法總結(jié)
在制作圖表時(shí),如果遇到需要利用特殊符號(hào)進(jìn)行表示時(shí)該怎么辦呢?不用慌,這篇文章為大家總結(jié)了python畫圖中使用各種特殊符號(hào)的方式,需要的可以參考一下2022-04-0415行Python代碼實(shí)現(xiàn)網(wǎng)易云熱門歌單實(shí)例教程
這篇文章主要給大家介紹了關(guān)于利用15行Python代碼實(shí)現(xiàn)網(wǎng)易云熱門歌單的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Python 中最長(zhǎng)公共子序列的長(zhǎng)度
子序列是在不改變剩余字符的順序的情況下,在刪除一些字符或不刪除任何字符后從給定序列獲得的序列,這篇文章主要介紹了Python 中的最長(zhǎng)公共子序列,需要的朋友可以參考下2023-06-06