標籤:png lex 就是 init 技術 建立 全棧 圖片 屬性
一、對象之間的互動
現在我們已經有了一個人類了,在通過人類一些具體的屬性我們就可以那到一個實實在在的人。
現在我們要在建立一個狗類,狗就不能打人了。只能咬人,所以我們給狗一個bite方法。
有了狗類,我們還要執行個體化一隻是實實在在的狗出來。
然後人和狗就可以打架了。現在我們就來讓他們打一架吧!
建立一個狗類
class Person: role = ‘person‘ #靜態屬性 def __init__(self,name,sex,hp,ad): self.name = name self.sex = sex self.hp = hp self.ad = ad def attack(self): print(‘%s發起了一次攻擊‘%self.name)class Dog: role = ‘person‘ #靜態屬性 def __init__(self,name, kind, hp, ad): self.name = name self.kind = kind self.hp = hp self.ad = ad def bite(self): print(‘%s咬了人一口‘%self.name)alex = Person(‘a_alex‘,‘不祥‘,1,5)boos_jin = Person(‘金老闆‘,‘女‘,20,50)teddy = Dog(‘笨笨‘,‘teddy‘,50,10)alex.attack() #相當於執行Person.attack(alex)boos_jin.attack() #相當於執行Person.attack(boss_jin)teddy.bite()
執行輸出:
a_sb發起了一次攻擊
金老闆發起了一次攻擊
笨笨咬了人一口
那麼問題來了,人發起了一次攻擊,他攻擊了誰?
互動 teddy打alex一下
class Person: role = ‘person‘ # 靜態屬性 def __init__(self, name, sex, hp, ad): self.name = name # 對象屬性 屬性 self.sex = sex self.hp = hp self.ad = ad def attack(self): print(‘%s發起了一次攻擊‘ % self.name)class Dog: role = ‘person‘ # 靜態屬性 def __init__(self, name, kind, hp, ad): self.name = name # 對象屬性 屬性 self.kind = kind self.hp = hp self.ad = ad def bite(self, people): # people是變數名,它是一個對象 people.hp -= self.ad # 人掉血 print(‘%s咬了%s一口,%s掉了%s點血‘ % (self.name, people.name, people.name, self.ad)) # 由於people是對象,取name就是people.namealex = Person(‘a_sb‘, ‘不詳‘, 1, 5)boss_jin = Person(‘金老闆‘, ‘女‘, 20, 50)teddy = Dog(‘笨笨‘, ‘teddy‘, 50, 10)teddy.bite(alex) # alex是一個對象,把對象傳進去了print(alex.hp) # 查看alex的血
python全棧學習--Day18(物件導向互動)