按照题目提供的逻辑跑出来结果不一样啊,我是不是哪里错了?

来源:3-7 编程练习

张宁宁_znn

2019-06-23 17:31:20

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,description):
        if self.brand in  description:
            return  1
        else:
          #  print("请输入您的车辆描述")
            return  0


#自定义静态方法 提示用户:‘已完成车辆基本参数信息的录入!’
    @staticmethod
    def basic_parameters():
        print("已完成车辆基本参数信息的录入!")

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


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(Car.description):
    # 若if判断条件成立 则调用类方法upkeep()并将对应实例的brand属性传递给参数desc
    Car.upkeep(car_1.brand,Car.description)
else:
    # 当if语句的判断条件不成立时,打印输出并提示用户:‘请正确填写相关的车辆信息’
    print("请正确填写相关的车辆信息")
car_2 = Car(4.2, 1.8, 1.5, '保时捷')
# 调用实例方法:basic_parameters()
car_2.basic_parameters()
# 利用if语句,调用modify_des()以判断Car的类属性description是否存在
if car_2.modify_des(Car.description):
    Car.upkeep(car_2.brand, Car.description)
else:
    print("请正确填写相关的车辆信息")
已完成车辆基本参数信息的录入!
根据汽车保养的相关经验,大众品牌的车应于5000km/次的频率进行专业性保养
已完成车辆基本参数信息的录入!
请正确填写相关的车辆信息


写回答

2回答

cn_five

2020-03-24

我觉得用hasattr判断对象是否有某种属性可以这样写类属性为description = ['大众', '丰田', '广本', '沃尔沃', '凯迪拉克']

def modify_des(self):

    for name in self.description:
       if hasattr(self, name):
           return 1
       else:
           return "请输入您的车辆描述"

0

时间,

2019-06-24

同学,你好。modify_des ( )是判断类属性description是否存在。可以使用hasattr() 函数,用于判断对象是否包含对应的属性。

def modify_des(self):
        if hasattr(self, 'description'):
            return True
        else:
            print("请输入您的车辆描述")

同学在modify_des()方法中判断的是传入的brand是否在类属性description中,返回return 0即if条件不成立,返回请正确填写相关的车辆信息,因此会是同学的执行结果。

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

0

0 学习 · 8160 问题

查看课程