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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

5.6 类组合

發(fā)布時(shí)間:2023/12/20 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5.6 类组合 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

組合與重用性

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

組合指的是,在一個(gè)類(lèi)中以另外一個(gè)類(lèi)的對(duì)象作為數(shù)據(jù)屬性,稱(chēng)為類(lèi)的組合

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

組合與繼承都是有效地利用已有類(lèi)的資源的重要方式。但是二者的概念和使用場(chǎng)景皆不同,

1.繼承的方式

通過(guò)繼承建立了派生類(lèi)與基類(lèi)之間的關(guān)系,它是一種'是'的關(guān)系,比如白馬是馬,人是動(dòng)物。

當(dāng)類(lèi)之間有很多相同的功能,提取這些共同的功能做成基類(lèi),用繼承比較好,比如老師是人,學(xué)生是人

2.組合的方式

用組合的方式建立了類(lèi)與組合的類(lèi)之間的關(guān)系,它是一種‘有’的關(guān)系,比如教授有生日,教授教python和linux課程,教授有學(xué)生s1、s2、s3...

示例:繼承與組合

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=[]cc=Teacher('cc',18,'male','講師') s1=Student('牛榴彈',18,'female')python=Course('python','3mons',3000.0) linux=Course('python','3mons',3000.0)#為老師cc和學(xué)生s1添加課程 cc.course.append(python) cc.course.append(linux) s1.course.append(python)#為老師cc添加學(xué)生s1 cc.students.append(s1)#使用 for obj in cc.course:obj.tell_info()

總結(jié):

當(dāng)類(lèi)之間有顯著不同,并且較小的類(lèi)是較大的類(lèi)所需要的組件時(shí),用組合比較好

轉(zhuǎn)載于:https://www.cnblogs.com/caimengzhi/p/8435269.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的5.6 类组合的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。