python--面向對象(最全講解)__學習筆記(1)

本文參考文章python面向對象(最全講解)

附錄上學習筆記代碼。

class Person:   #定義一個人類
    role = 'person'  #人的角色屬性都是人
    def __init__(self,name,aggressivity,life_value):
        self.name = name    #每一個角色都有自己的暱稱
        self.aggressivity = aggressivity    #每一個角色都有自己的攻擊力
        self.life_value = life_value        #每一個角色都有自己的生命值

    def walk(self):  #人都可以走路,也就是有一個走路方法,也叫動態屬性
        print("person is walking...")

    def attack(self,dog):
        # 人可以攻擊狗,這裏的狗也是一個對象。
        # 人攻擊狗,那麼狗的生命值就會根據人的攻擊力而下降
        dog.life_value -= self.aggressivity

class Dog:
    role = 'dog'

    def __init__(self,name,breed,aggressivity,life_value):
        self.name = name #每一隻狗都有自己的暱稱;
        self.breed = breed #每一隻狗都有自己的品種
        self.aggressivity = aggressivity #每一隻狗都有自己的攻擊力
        self.life_value = life_value #每一隻狗都有自己的生命值

    def bite(self,people):
        #狗可以咬人,這裏的狗也是一個對象
        #狗咬人,那麼人的生命值會根據狗的攻擊力而下降
        people.life_value -= self.aggressivity


print(Person.role)  #查看人的role屬性
print(Person.walk)  #引用人的走路方法,注意,這裏不是在調用

egg = Person('egon',10,1000)

print(egg.name)
print(egg.aggressivity)
print(egg.life_value)
print(egg.walk())

#print(egg.attack())
ha2 = Dog('二愣子','哈士奇',5,500)  #創造了一隻實實在在的狗ha2

#交互 egon 打 ha2 一下
print(ha2.life_value)       #看看ha2的生命值
egg.attack(ha2)             #egg打了ha2一下
print(ha2.life_value)       #ha2掉了10點血

運行結果:

person
<function Person.walk at 0x0000000001E83D08>
egon
10
1000
person is walking...
None
500
490

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章