乙個物件的屬性是來自另一類的物件,稱之為組合。
組合也是用來解決類與類**冗餘的問題
#組合的基本形式class
too:#作為另乙個物件的屬性
pass
class
bar:
def __init__(self,too):
self.too =too
t1 =too()
b1 =bar(t1)
classtoo:
a =1111
def__init__
(self,x,y):
self.x =x
self.y =y
class
bar:
b=222
def__init__
(self,m,n,too):
self.m=m
self.n=n
self.too =too
t1 = too(1,2)
b1 = bar(5,10,t1)
b2 = bar(10,20,t1)
#bar類中實際上需要too的三個屬性,但是init定義的話,
#建立需要每次定義多三個引數
#使用組合這種方式不僅可以使用t1物件中資料和函式屬性,還可使用類的屬性
(b1.too.x)#1
(b1.too.a)
#1111
#傳值減少繁瑣,同時too類,面對複雜的類也可以條理明細
舉例:
#繼承也可以減少冗餘**
class
schoolman:
def__init__
(self,name,age,gender):
self.name =name
self.age =age
self.gender =gender
class
course:
def__init__
(self,name,period,price):
self.name=name
self.period =period
self.price =price
#需要課程資訊,
class
student(schoolman):
def__init__
(self,name,age,gender,course):
super().
__init__
(name,age,gender)
self.course =course
defcheck_course(self):
print('選擇'
%(self.name,self.course.name,self.course.period,self.course.price))
#老師類同樣需要課程資訊
class
teacher(schoolman):
def__init__
(self,name,age,gender,course,level,salaries):
super().
__init__
(name,age,gender)
self.course =course
self.level =level
self.salaries =salaries
defcheck_course_info(self):
print('
' %( self.course.name, self.course.period, self.course.price))
c1 = course('
python
','5month
',30000)
s1= student('
s1',18,'
male
',c1)
t1 =teacher('
egon
',18,'
male
',c1,10,5000)
s1.check_course()
t1.check_course_info()
物件導向 組合
物件導向之組合 1 什麼是繼承?什麼是組合?顧名思義 繼承就是什麼是什麼的關係 組合就是什麼有什麼的關係 class person nationnality china def init self,name,age,self.name name self.age age self.class tea...
物件導向 物件的組合
組合 乙個類的例項可以當做引數傳給另乙個類的例項 class school def init self,name,address self.name name self.address address class course def init self,name,price,outline,sch...
物件導向初識(組合)
一 物件導向 組合 定義 給乙個類的物件封裝乙個屬性,這個屬性是另乙個類的物件。意義 讓類的物件與另乙個類的物件產生關係,類與類之間產生關係。說白了也就是把a物件當成屬性傳入b物件,然後讓b物件1去呼叫a物件 人物使用 攻擊另乙個人物 class game role def init self,na...