日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python继承外另一种重用方式——组合

發布時間:2025/3/20 python 8 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python继承外另一种重用方式——组合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、組合概念

軟件重用的重要方式除了繼承之外還有另外一種方式——組合。

1、組合定義

組合指的是,在一個類中以另外一個類的對象(也就是實例)作為數據屬性,稱為類的組合。

也就是說,一個類的屬性是另一個類的對象,就是組合。

>>> class Equip: #武器裝備類 ... def fire(self): ... print('release Fire skill') ... >>> class Riven: #英雄Riven的類,一個英雄需要有裝備,因而需要組合Equip類 ... camp='Noxus' ... def __init__(self,nickname): ... self.nickname=nickname ... self.equip=Equip() #用Equip類產生一個裝備,賦值給實例的equip屬性 ... >>> r1=Riven('銳雯雯') >>> r1.equip.fire() #可以使用組合的類產生的對象所持有的方法 release Fire skill

二、繼承和組合對比

共性

組合和繼承都是有效利用已有類資源的重要方式(代碼重用)。

差異

  • 繼承:建立派生類和基類間的關系,是一種“是”的關系。

  • 組合:建立類與組合的類之間的關系,是一種“有”的關系。

適用情況

  • 繼承:當類之間有很多相同的功能,提取這些共同的功能做成基類,用繼承比較好

  • 組合:當類之間有顯著不同,并且較小的類是較大的類所需要的組件時,用組合比較好。

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' class People:def __init__(self,name,age,sex):self.name=nameself.age=ageself.sex=sexclass Course:def __init__(self,name,period,price):self.name=nameself.period=periodself.price=pricedef tell_info(self):print('<%s %s %s>' %(self.name,self.period,self.price))class Teacher(People):def __init__(self,name,age,sex,job_title):People.__init__(self,name,age,sex)self.job_title=job_titleself.course=[]self.students=[]class Student(People):def __init__(self,name,age,sex):People.__init__(self,name,age,sex)self.course=[]egon=Teacher('egon',18,'male','沙河霸道金牌講師') s1=Student('牛榴彈',18,'female')python=Course('python','3mons',3000.0) linux=Course('python','3mons',3000.0)#為老師egon和學生s1添加課程 egon.course.append(python) egon.course.append(linux) s1.course.append(python)#為老師egon添加學生s1 egon.students.append(s1)#使用 for obj in egon.course:obj.tell_info()

總結

以上是生活随笔為你收集整理的Python继承外另一种重用方式——组合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。