學習手扎20190408 繼承例項

2021-09-17 02:47:42 字數 1425 閱讀 6686

父類中沒有的屬性 在子類**現 叫做派生屬性

父類中沒有的方法 在子類**現 叫做派生方法

只要是子類的物件呼叫,子類中有的名字 一定用子類的,子類中沒有才找父類的,如果父類也沒有報錯

如果父類 子類都有 用子類的

如果還想用父類的,單獨呼叫父類的:

父類名.方法名 需要自己傳self引數

super().方法名 不需要自己傳self

正常的**中 單繼承 === 減少了**的重複

繼承表達的是一種 子類是父類的關係 

狗類 吃 喝 看門(guard)

鳥類 吃 喝 下蛋(lay)

# 父類

class animal:

def __init__(self,name,aggr,hp):

self.name = name

self.aggr = aggr

self.hp = hp

# 子類

def eat(self):

print('吃藥回血')

self.hp+=100

# 子類

class dog(animal):

def __init__(self,name,aggr,hp,kind):

animal.__init__(self,name,aggr,hp) #

self.kind = kind 派生屬性

def eat(self):

animal.eat(self) 如果既想實現新的功能也想使用父類原本的功能,還需要在子類中再呼叫父類

self.teeth = 2

def bite(self,person): 派生方法

person.hp -= self.aggr

jin = dog('金老闆',100,500,'吉娃娃')

jin.eat()

print(jin.hp)

class person(animal):

def __init__(self,name,aggr,hp,***):

animal.__init__(self,name,aggr,hp)

self.*** = *** 派生屬性

self.money = 0 派生屬性

# def attack(self,dog):

dog.hp -= self.aggr

# def get_weapon(self,weapon):

if self.money >= weapon.price:

self.money -= weapon.price

self.weapon = weapon

self.aggr += weapon.aggr

else:

print("餘額不足,請先充值")

學習手扎20190402 異常

程式一旦發生錯誤,就從錯誤的位置停下來了,不在繼續執行後面的內容 使用try和except就能處理異常 try是我們需要處理的 except 後面跟乙個錯誤型別 當 發生錯誤且錯誤型別符合的時候 就會執行except中的 except支援多分支 有沒有乙個能處理所有錯誤的型別 exception 有...

bjam編譯手扎

編譯靜態庫的時候,在相關 jam 檔案中,新增如下 預設編譯配置 預設編譯4種最常用的庫型別 default build debug release multi static if os.name nt 這裡的 配合下面的 tag rule 可以定義輸出的檔名,這裡使用仿 boost 規則的庫檔名,...

學習手扎20190417 佇列Queue

程序間通訊 佇列 multiprocess.queue 概念介紹 建立共享的程序佇列,queue是多程序安全的佇列可以使用queue實現多程序之間的資料傳遞。from multiprocessing import queue,process 子程序新增佇列 def produce q 在佇列中放入 ...