老师,代码全部按您的改了,还是没有运行成功。

来源:3-7 编程练习

WU_JIE

2019-12-23 13:21:41

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():
        if brand in Car.description:
       
            return 1
        else:
            return '请输入您的车辆描述'
    # 自定义静态方法 提示用户:‘已完成车辆基本参数信息的录入!’
    @staticmethod
    def basic_parameters():
        print('已完成车辆基本参数信息的录入')
    # 自定义类方法 根据用户车辆的品牌给出相应的合理保养建议
    def upkeep(self, desc):
        if desc in Car.description:
            print('根据汽车保养的相关经验,{0}品牌的车应于5000km、次的频率进行专业性保养'.format(desc))
        else:
            print('非常抱歉!{0}品牌不在我们的保养范围内'.format(desc))

car_1 = Car(4.2, 1.8, 1.5, '大众')

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

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

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

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

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


写回答

2回答

好帮手乔木

2019-12-23

同学你好:

左边是同学当前的问答代码:

  1. modify_des函数缺少self参数。

  2. 该方法是判断description属性是否存在。

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

    3.调用的是modify_desc方法,同学的操作错误。

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


左边的是同学之前的问答代码:

1、判断的是description属性是否存在。同学判断的是输入的brand是否在description中。http://img.mukewang.com/climg/5e0077b2095c368918300450.jpg

2.

静态方法不需要多定义参数('self'或'cls')。

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

3.

upkeep()方法中缺少format格式化

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

4.在car_2调用静态方法时,方法名写错

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

修改后的执行效果:

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

如果我解决了同学的问题,请采纳!学习愉快^_^。


0

好帮手乔木

2019-12-23

同学你好:

根据之前的代码修改后的正确代码如下:

同学可根据之前问答中提交的代码进行比较。

class Car(object):
    description = ['大众','丰田','广本','沃尔沃','凯迪拉克']
    def __init__(self, L, W, H, brand):
        self.L = L
        self.W = W
        self.H = H
        self.brand = brand
    #4、modify_des ( )方法是判断类属性description是否存在,若存在,直接返回;反之,返回“请输入您的车辆描述”。同学判断的是输入的brand是否在description中。
    def modify_des(self):
        if hasattr(self,'description'):
            return 1
        else:
            return '请输入您的车辆描述'
    #1、静态方法不需要多定义参数('self'或'cls')。
    @staticmethod
    def basic_parameters():
        print('已完成车辆基本参数信息的录入')
    def upkeep(self, desc):
        if desc in Car.description:
            print('根据汽车保养的相关经验,{0}品牌的车应于5000km、次的频率进行专业性保养'.format(desc))
        else:
            #3、upkeep()方法中缺少format格式化
            print('非常抱歉!{0}品牌不在我们的保养范围内'.format(desc))

if __name__ == '__main__':

    car_1 = Car(4.2, 1.8, 1.5, '大众')

    car_1.basic_parameters()
    car_1.desc = car_1.brand
    if car_1.modify_des() == 1:
        car_1.upkeep(car_1.desc)
    else:
        print("请正确填写相关的车辆信息")


    car_2 = Car(4.2, 1.8, 1.5, '保时捷')
    #2、在car_2调用静态方法时,方法名写错
    car_2.basic_parameters()
    car_2.desc = car_2.brand
    if car_2.modify_des() == 1:
        car_2.upkeep(car_2.desc)
    else:
        car_2.upkeep(car_2.desc)
        print("请正确填写相关的车辆信息")

如果我解决了同学的问题,请采纳!学习愉快^_^。

0
hU_JIE
h 对比了没问题啊,您再看一下。
h019-12-23
共1条回复

0 学习 · 8160 问题

查看课程