python全棧學習--Day18(面向對象交互)
阿新 • • 發佈:2018-04-12
查看 name strong 就是 創建 Python全棧 info 靜態 還要
一、對象之間的交互
現在我們已經有了一個人類了,在通過人類一些具體的屬性我們就可以那到一個實實在在的人。
現在我們要在創建一個狗類,狗就不能打人了。只能咬人,所以我們給狗一個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.name alex = 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(面向對象交互)