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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

(6)组合

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

繼承是解決類與類之間代碼冗余的問題(冗余就是重復(fù)也是一種強(qiáng)耦合)

另一種方案就是

組合(解耦合)

組合也是解決類與類之間代碼冗余問題的方案

?

組合: 某一個(gè)類的對(duì)象具備一個(gè)屬性,該屬性的值是另外一個(gè)類的對(duì)象
class OldboyPeople:
school = 'Oldboy'

def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender

class Course:#課程類
def __init__(self,name,price,period):
self.name = name
self.price = price
self.period = period

def tell_info(self):
print('<name:%s price:%s period:%s>' %(self.name,self.price,self.period))

class OldboyStudent(OldboyPeople):
def choose_course(self):
print('%s is choosing course' %self.name)

class OldboyTeacher(OldboyPeople):
def __init__(self, name, age, gender,level):
super().__init__(name, age, gender) #重用一下父類的功能,只要將和父類相同參數(shù)傳入即可
self.level=level

def score(self,stu,num):
stu.score=num
print('老師[%s]為學(xué)生[%s]打了分[%s] ' %(self.name,stu.name,num))

python_obj=Course('python自動(dòng)化開發(fā)',10000,'3mons')
linux_obj=Course('linux架構(gòu)',20000,'2mons')

stu1=OldboyStudent('王大炮',18,'male',)
tea1=OldboyTeacher('Egon',18,'male',10)
print(stu1.__dict__)
print(tea1.__dict__) *** stu1.course=python_obj #讓學(xué)生1的課程類也傳入python_obj的參數(shù),初始化課程 *** PS:讓stu1的對(duì)象具備某一個(gè)屬性,這個(gè)屬性的值是也是一個(gè)對(duì)象,但是這個(gè)對(duì)象來自于另一個(gè)類,這就是組合

學(xué)生有可能選修多門課
stu1.courses=[] #這里學(xué)生課程就直接組合成一個(gè)列表
tea1.courses=[]
stu1.courses.append(python_obj) #然后將需要的課程直接放入列表
stu1.courses.append(linux_obj) 查看學(xué)生選修的課程
print(stu1.courses)
for obj in stu1.courses:
obj.tell_info() #obj下有一個(gè)tell_info方法,直接可以看到相關(guān)的課程

?


print(stu1.course.name) #屬性course,這個(gè)屬性的值是couse類對(duì)象
print(stu1.course.price)
print(stu1.course.period)
stu1.course.tell_info()
PS:對(duì)象自己類下和父類、里的屬性和函數(shù)都能夠讀取到PS:類就是一個(gè)高度整合的東西,相互之間有繼承,也可以靠組合整合到一起,相互獲取屬性和函數(shù)

?

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

總結(jié)

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

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