今日大綱
一、物件導向的組合
組合:給乙個類的物件封裝乙個屬性,這個屬性就是另乙個類的物件
組合的意義:讓乙個類的物件和另乙個類的物件產生關係,讓乙個類和另乙個類產生關係
如何組合:
1、在類1中定義乙個方法,類1的物件1在執行這個方法的時候能增加乙個屬性,屬性值就是類2的物件2
2、物件1執行這個方法,增加乙個屬性值是類2的物件2
3、類1.屬性名.類2中的方法,就以類1為主體執行了類2的方法
classgamerole:
def__init__
(self,name,ad,hp):
self.name =name
self.hp =hp
self.ad =ad
defattack(self,role):
role.hp = role.hp -self.ad
print('
%s攻擊%s,%s掉了%s血,還剩%s血
' %(self.name,role.name,role.name,self.ad,role.hp))
def equip_weapon(self,w): #
定義乙個方法,讓gamerole的物件可以產生乙個新的屬性,屬性名是weapon,屬性值是weapon的物件
self.weapon =w
class
weapon:
def__init__
(self,name,ad):
self.name =name
self.ad =ad
deffight(self,role1,role2):
role2.hp = role2.hp -self.ad
print('
%s用%s攻擊%s,%s掉了%s血,還剩%s血
' %(role1.name,self.name,role2.name,role2.name,self.ad,role2.hp))
p1 = gamerole('
蓋倫',20,500)
p2 = gamerole('
劍豪',100,200)
#p1.attack(p2)
w1 = weapon('
大寶劍',30)
w2 = weapon('
武士刀',80)
#w1.fight(p1,p2) #刀是主體,不合規範 蓋倫用大寶劍攻擊劍豪,劍豪掉了30血,還剩170血
p1.equip_weapon(w1) #
執行方法,給物件p1增加乙個屬性weapon,屬性值是weapon的物件w1
#print(p1.weapon) #<__main__.weapon object at>
#print(w1) #<__main__.weapon object at>
p1.weapon.fight(p1,p2) #
蓋倫用大寶劍攻擊劍豪,劍豪掉了30血,還剩170血
力扣學習筆記day16
請編寫乙個函式,使其可以刪除某個鍊錶中給定的 非末尾 節點。傳入函式的唯一引數為 要被刪除的節點 現有乙個鍊錶 head 4,5,1,9 它可以表示為 輸入 head 4,5,1,9 node 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 4...
day16 學習總結
今天學習了可變引數和遞迴。老師還留了一道練習題,寫乙個計算器出來,嘗試琢磨了許久,還是沒有做出來。這也是我基礎薄弱的緣故,明天繼續研究。加油加油!下面是知識點 package com.liangwenwei.方法 public class 可變引數 public void test int x,in...
Python全棧學習筆記day 16 匿名函式
匿名函式 為了解決那些功能很簡單的需求而設計的一句話函式 這段 def calc n return n n print calc 10 換成匿名函式 下面給出了乙個關於匿名函式格式的說明 函式名 lambda 引數 返回值 引數可以有多個,用逗號隔開 匿名函式不管邏輯多複雜,只能寫一行,且邏輯執行結...