老师,请问我这样写哪里可以改进!有些地方感觉有多种写法

来源:3-7 编程练习

kkkkke

2019-04-14 15:25:43

class Car(object):
   # Car类的基本车型设置,列表形式
   description = ['大众', '本田', '广本', '沃尔沃', '凯迪拉克']

   # 重写该类的构造方法,并将参数l、w、h、brand赋值给实例对象属性
   def __init__(self, l, w, h, brand):
       self.L = l
       self.W = w
       self.H = h
       self.brand = brand

   # 自定义该类的基本车型检索方法
   def modify_des(self):
       if self.brand in self.description:
           return True
       else:
           return '请输入您的车辆描述'
           # 自定义静态方法 提示用户:‘已完成车辆基本参数信息的录入!’

   @staticmethod
   def basic_parameters():
       print('已完成车辆基本信息参数的录入')

   # 自定义类方法 根据用户车辆的品牌给出相应的合理保养建议
   @classmethod
   def upkeep(cls, desc):
       if desc in cls.description:
           print('根据汽车保养经验,{}品牌的车应于5000km/次的频率进行专业性保养'.format(desc))
       else:
           print('非常抱歉,{}品牌的车不在我们的保养范围之内'.format(desc))

if __name__ == '__main__':
   car_1 = Car(4.2, 1.8, 1.5, '大众')

# 调用实例方法:basic_parameters()
   car_1.basic_parameters()
# 利用if语句,调用modify_des()以判断Car的类属性description是否存在
   if car_1.modify_des() is True:
       car_1.upkeep(car_1.brand)
   else:
       print('请正确填写车辆相关信息')
# 若if判断条件成立 则调用类方法upkeep()并将对应实例的brand属性传递给参数desc

# 当if语句的判断条件不成立时,打印输出并提示用户:‘请正确填写相关的车辆信息’

   car_2 = Car(4.2, 1.8, 1.5, '保时捷')

# 调用实例方法:basic_parameters()
   Car.basic_parameters()
# 利用if语句,调用modify_des()以判断Car的类属性description是否存在
   if car_2.modify_des() is True:
       car_2.upkeep(car_2.brand)
   else:
       car_2.upkeep(car_2.brand)
# 若if判断条件成立,则调用类方法upkeep()并将对应实例的brand属性传递给参数desc

# 当if语句的判断条件不成立时,打印输出并提示用户:‘请正确填写相关的车辆信息’

写回答

3回答

Pinocchio_J

2019-04-25

是modify_des方法写错了

要求是判断类属性description是否存在Car类中, 而不是判断传入的品牌(self.brand)是否在description列表中。

# 自定义该类的基本车型检索方法
def modify_des(self):
    if hasattr(self, 'description'):
        return True
    else:
        print("请输入您的车辆描述")


0

weixin_慕桂英1121240

2019-04-23

为啥我觉得你代码就是错的,先改对再改进把

0
hkkkke
h 你方便把你写的贴出来吗?就是不知道怎么改啊
h019-04-23
共1条回复

时间,

2019-04-15

同学,你好,同学的程序功能是实现了的,代码写的也很好,还是有需要优化的地方,如下:

当调用modify_des()判断description是否存在时,可以直接写if car_1.modify_des():,if语句是条件成立时执行的语句即return True。

http://img.mukewang.com/climg/5cb3e79300012d8608870463.jpg

0

0 学习 · 8160 问题

查看课程