>>classEquip:#武器裝備類...deffire(self):...print('releaseFireskill')...>>>classRiven:#英雄Riven的類,一個(gè)英雄需要有裝備,因而需要組合Equip類...camp='Noxus'...def__init" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python面向?qū)ο缶幊獭M合與重用性

系統(tǒng) 1953 0

Python面向?qū)ο缶幊獭M合與重用性

組合與重用性

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

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

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

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

1、繼承的方式

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

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

2、組合的方式

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

示例:繼承與組合

          
            class People:
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex

class Course:
    def __init__(self,name,period,price):
        self.name=name
        self.period=period
        self.price=price
    def 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_title
        self.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和學(xué)生s1添加課程
egon.course.append(python)
egon.course.append(linux)
s1.course.append(python)

#為老師egon添加學(xué)生s1
egon.students.append(s1)


#使用
for obj in egon.course:
    obj.tell_info()
          
        

3、總結(jié)

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产精品亚洲综合 | 国产一区二区三区在线 | av在线二区| www.99b| 波多野结衣办公室33分jian情 | 91免费国产在线观看 | 日本精品久久久久中文字幕 | 久草青娱乐 | 亚洲欧美激情视频 | 亚洲免费视频网站 | 国产视频导航 | 免费久久一级欧美特大黄 | 亚洲一区二区三区久久 | 精品免费久久久久久成人影院 | 中文字幕av亚洲精品一部二部 | 国产精品一区欧美激情 | 亚洲天堂在线播放 | 天堂一区二区三区 | 国产亚洲欧美日本一二三本道 | 超碰在线观看97 | 免费精品久久久久久中文字幕 | 国产乱仑| 久久久久久网站 | 午夜久久久久久久久久一区二区 | 琪琪五月天综合婷婷 | 无限看片在线版免费视频大全 | 欧美在线观看视频网站 | 久久69精品久久久久久国产越南 | 欧美一区二区在线播放 | gogo全球大胆高清人露出91 | jizjizjiz中国护士18 | 久久精品国产99国产精品 | 在线观看欧美成人 | 一级一片免费看 | 日韩在线观看毛片 | 国产精品美女久久久久久久久久久 | 日韩在线黄色 | 欧美一级夜夜爽 | 日韩久久一区二区三区 | 亚洲国产精品日韩高清秒播 | 国产成人一区二区三区 |