本文参考文章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