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

egon
10
1000
person is walking...
None
500
490

 

 

你可能感兴趣的:(python入门学习)