Python學習筆記 Day16

2022-07-24 18:51:15 字數 1547 閱讀 3798

今日大綱

一、物件導向的組合

組合:給乙個類的物件封裝乙個屬性,這個屬性就是另乙個類的物件

組合的意義:讓乙個類的物件和另乙個類的物件產生關係,讓乙個類和另乙個類產生關係

如何組合:

1、在類1中定義乙個方法,類1的物件1在執行這個方法的時候能增加乙個屬性,屬性值就是類2的物件2

2、物件1執行這個方法,增加乙個屬性值是類2的物件2

3、類1.屬性名.類2中的方法,就以類1為主體執行了類2的方法

class

gamerole:

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 引數 返回值 引數可以有多個,用逗號隔開 匿名函式不管邏輯多複雜,只能寫一行,且邏輯執行結...