''' 宠物系统 2023.06.08 优化要求: 1、添加企鹅类,根据选择的要领养的宠物类型完成相应操作 2、编写父类宠物类,子类狗类和企鹅类 3、i ''' #父类:宠物类Pet、 class Pet(object): def __init__(self,name='未知',health=100,love=0): self.name=name self.health=health self.love=love def show(self): print('宠物的自白:我叫{},健康值为{},和主人的亲密度为{}。'.format( self.name, self.health, self.love)) #子类Dog class Dog(Pet): count=0 def __init__(self,name='未知',strain='未知',health=100,love=0): super().__init__(name,health,love) self.strain=strain self.count+=1 def show(self): print('宠物的自白:我叫{},是一只{},健康值为{},和主人的亲密度为{}。'.format( self.name,self.strain,self.health,self.love)) #子类Penguin class Penguin(Dog): def __init__(self,name='未知',sex='未知',health=100,love=0): super().__init__(name,health,love) self.sex=sex def show(self): print('宠物的自白:我叫{},性别是{},健康值为{},和主人的亲密度为{}。'.format( self.name,self.sex,self.health,self.love)) dogcount=0 pencount=0 while True: choice=input('需要领养宠物吗?(y/n):') if choice=='y': name = input('请给领养的宠物取名字:') selectpet=input('请选择领养宠物的类型(1:狗子,2:企鹅):') if selectpet=='1': dog=Dog() dog.name=name # dogcount+=1 selectstrain=input('请选择狗子品种(1、拉布拉多,2、柴犬):') if selectstrain=='1': dog.strain='拉布拉多' else: dog.strain='柴犬' dog.show() elif selectpet=='2': pen=Penguin(name) pencount+=1 selectsex=input('请选择企鹅性别(1、Q仔,2、Q妹):') if selectsex=='1': pen.sex='Q仔' else: pen.sex=='Q妹' pen.show() else: print('输入错误,请重新输入!') elif choice=='n': # print("您一共领养了{}只狗子,{}只企鹅。".format(dogcount, pencount)) break else: print('输入错误,请重新输入!') print("您一共领养了{}只狗子,{}只企鹅。".format(dog.count,pencount))
时间: 2024-02-14 18:24:42 浏览: 157
基于分类和聚类算法的模式识别系统的设计与实现代码大全.doc
在代码检查过程中,我注意到以下几点需要改进:
1. 缺少注释:尽管您已经添加了一些注释,但是这些注释并不够详细,因此还需要添加更多的注释来帮助其他开发人员更好地理解代码。
2. 子类Penguin的继承:在代码中,子类Penguin继承自子类Dog,这是不合理的。企鹅和狗之间没有继承关系。应该让子类Penguin直接继承自父类Pet。
3. 代码逻辑问题:在领养宠物的部分,您使用了 dogcount 和 pencount 来计数,但是这些计数器没有被正确更新。正确的做法应该是在创建狗子和企鹅对象时,使用类属性 count 来计数。同时,您在子类Dog的构造函数中使用了 count+=1,但是这会导致每次创建一个新的Dog对象时,count值都会增加1,这不是您想要的结果。应该将 count += 1 放在while循环外面。
改进后的代码如下:
阅读全文