为啥31行出错啊?
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):
return hasattr(self,'description')
# 自定义静态方法 提示用户:‘已完成车辆基本参数信息的录入!’
@staticmethod
def basic_parameters():
print("已完成车辆基本参数信息的录入")
# 自定义类方法 根据用户车辆的品牌给出相应的合理保养建议
@classmethod
def upkeep(cls,desc):
if desc in 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是否存在
if car_1.modify_des() :
# 若if判断条件成立 则调用类方法upkeep()并将对应实例的brand属性传递给参数desc
car_1.upkeep(self.brand)
# 当if语句的判断条件不成立时,打印输出并提示用户:‘请正确填写相关的车辆信息’
else :
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() :
# 若if判断条件成立,则调用类方法upkeep()并将对应实例的brand属性传递给参数desc
car_2.upkeep(self.brand)
# 当if语句的判断条件不成立时,打印输出并提示用户:‘请正确填写相关的车辆信息’
else :
print("请正确填写相关的车辆信息")9
收起
正在回答
1回答
同学你好,第31行代码,调用类方法upkeep()在传入参数时,应该使用实例car_1调用brand属性,可参考下面的写法

另外,同学的代码中,还有以下2个问题
1. car_2.upkeep()方法传入的参数,要使用实例car_2调用brand属性
2. 在类方法中引用类属性,需要使用关键字cls
加油,祝学习愉快~~~~
1.Python零基础入门
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星