物件導向 物件的組合

2022-08-02 11:09:11 字數 2826 閱讀 1585

#組合

#乙個類的例項可以當做引數傳給另乙個類的例項

# class school:

# def __init__(self,name,address):

# self.name=name

# self.address=address

# class course:

# def __init__(self,name,price,outline,school):

# self.name=name

# self.price=price

# self.outline=outline

# self.school=school

# cour=course('lxx',1000,'6mons',school('老男孩','北京'))

# print(cour.name,cour.school.name,cour.school.address)

#乙個類的物件,可以當做另乙個類的屬性,放入__init__方法中

# class school:

# def inform(self):

# print('校運動會。。。')

# class course:

# def __init__(self,name,price,outline):

# self.name=name

# self.price=price

# self.outline=outline

# self.school=school()#給班級繫結乙個學校

# cour=course('lxx',1000,'6mons')

# cour.school.inform()#school的技能,cour可以直接呼叫

#求環的面積周長,用到園的面積周長

class circle:

def __init__(self,r):

self.r=r

def area(self):

return 3.14*self.r**2

def perimeter(self):

return 2*3.14*self.r

class ring:

def __init__(self,out_r,in_r):

self.out_circle=circle(out_r)

self.in_circle=circle(in_r)

def area(self):

return(self.out_circle.area()-self.in_circle.area())

def perimeter(self):

return(self.out_circle.perimeter()+self.in_circle.perimeter())

print(ring(3,2).area(),ring(5,2).perimeter())

#人狗大戰完整**

class person:

def __init__(self,name,life_value,aggressivity,money):

self.name=name

self.aggressivity=aggressivity

self.life_value=life_value

self.money=money

def attack(self,dog):

dog.life_value-=self.aggressivity

class dog:

def __init__(self,name,breed,life_value,aggressivity):

self.name=name

self.breed=breed

self.aggressivity=aggressivity

self.life_value=life_value

def bite(self,person):

person.life_value-=self.aggressivity

class weapon:

def __init__(self,name,life_value,aggrev,price):

self.name=name

self.price=price

self.aggrev=aggrev

self.life_value=life_value

def update(self,person):

person.aggressivity+=self.aggrev

person.life_value+=self.life_value

person.money-=self.price

def prick(self,dog):

dog.life_value-=self.aggrev

lance=weapon('肉包子',222,333,400)

alex=person('alex',500,200,300)

ha2=dog('二哈','哈士奇',500,1000)

alex.attack(ha2)

print(alex.life_value,ha2.life_value)

lance.update(alex)

print(alex.life_value,alex.aggressivity,alex.money)

lance.prick(ha2)

print(ha2.life_value)

物件導向 組合

物件導向之組合 1 什麼是繼承?什麼是組合?顧名思義 繼承就是什麼是什麼的關係 組合就是什麼有什麼的關係 class person nationnality china def init self,name,age,self.name name self.age age self.class tea...

物件導向 組合

乙個物件的屬性是來自另一類的物件,稱之為組合。組合也是用來解決類與類 冗餘的問題 組合的基本形式 class too 作為另乙個物件的屬性 pass class bar def init self,too self.too too t1 too b1 bar t1 class too a 1111 ...

物件導向初識(組合)

一 物件導向 組合 定義 給乙個類的物件封裝乙個屬性,這個屬性是另乙個類的物件。意義 讓類的物件與另乙個類的物件產生關係,類與類之間產生關係。說白了也就是把a物件當成屬性傳入b物件,然後讓b物件1去呼叫a物件 人物使用 攻擊另乙個人物 class game role def init self,na...