博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。
一、背景
Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。下面我们来介绍一下python的类的典型案例。
二、猫狗大战
【例】 编写程序,模拟猫狗大战,要求: (1)可创建多个猫和狗的对象,并初始化每只猫和狗(包括昵称、品种、攻击力、生命值等属性)。 (2)猫可以攻击狗,狗的生命值会根据猫的攻击力而下降;同理狗可以攻击猫,猫的生命值会根据狗的攻击力而下降。 (3)猫和狗可以通过吃来增加自身的生命值。 (4)当生命值小于等于0时,表示已被对方杀死。
- 第一步,定义一个猫类。
#定义一个猫类
class Cat:
role = 'cat' #猫的角色属性都是猫
#构造方法初始化猫
def __init__(self, name, breed, aggressivity, life_value):
self.name = name #每一只猫都有自己的昵称
self.breed = breed #每一只猫都有自己的品种
self.aggressivity = aggressivity #每一只猫都有自己的攻击力
self.life_value = life_value #每一只猫都有自己的生命值
#定义猫攻击狗的方法
def attack(self,dog):
dog.life_value -= self.aggressivity #狗的生命值会根据猫的攻击力而下降
#定义增长生命值的方法
def eat(self):
self.life_value =
#定义判断是否死亡的方法
def die(self):
if self.life_value <= : #如果生命值小于等于0表示已被对方杀死
print(self.name,'已被杀死!')
else:
print(self.name,'的生命值还有',self.life_value)
- 第一步,定义一个狗类。
#定义一个狗类
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,cat):
cat.life_value -= self.aggressivity #猫的生命值会根据狗的攻击力而下降
#定义增长生命值的方法
def eat(self):
self.life_value =
#定义判断是否死亡的方法
def die(self):
if self.life_value <= : #如果生命值小于等于0表示已被对方杀死
print(self.name,'已被杀死!')
else:
print(self.name,'的生命值还有',self.life_value)
- 第三步,创建实例。
#创建实例
cat_1 = Cat('Mily','波斯猫',,) #创造了一只实实在在的猫
dog_1 = Dog('Lucky','哈士奇',,) #创造了一只实实在在的狗
cat_1.die() #输出猫的当前状态
dog_1.die() #输出狗的当前状态
print('------开始战斗-----')
cat_1.attack(dog_1) #猫攻击狗一次
dog_1.bite(cat_1) #狗攻击猫一次
cat_1.die() #输出猫的当前状态
dog_1.die() #输出狗的当前状态
for i in range(): #循环实现,猫攻击狗29次
cat_1.attack(dog_1)
dog_1.die() #输出狗的当前状态
cat_1.eat() 猫吃东西一次
cat_1.die() #输出猫的当前状态
运行结果如下,大家可以参考前面知识点,复制代码到pycharm上,去理解代码。
三、参考
1、廖雪峰的官网 2、python官网 3、Python编程案例教程
四、总结
以上就是就是关于Python类的典型案例,可以参考一下,觉得不错的话,欢迎点赞、收藏、在看,欢迎微信搜索关注java基础笔记,后面会不断更新相关知识,大家一起进步。