1. 程式人生 > >python全棧學習--Day18(面向對象交互)

python全棧學習--Day18(面向對象交互)

查看 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(面向對象交互)