题目要求的modify_des()是有什么用的?

题目要求的modify_des()是有什么用的?

以下是自己写的代码。一开始是按照题目的要求来写代码,但是怎样调整都报错,后来按照自己的感觉去修改,就得出以下的代码,出来的结果也是对的,如果是这样就不明白了,那为什么题目要求写modify_des()这个函数呢?它有什么作用呢?为什么我不写它也能完成?如果要写它应该怎么写?
class Car(object):
    description = ['大众', '丰田', '广本' ,'沃尔沃', '凯迪拉克']
    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 Car.description:
            return self.brand
        else:
            print('请输入您的车辆描述')
    @staticmethod
    def basic_parameters():
        print('已完成车辆基本参数信息的录入!')
    def upkeep(self, desc):
        desc = self.brand
        if desc in Car.description:
            print('根据汽车保养的相关经验,{0}品牌的车应于5000km/次的频率进行专业性保养'.format(desc))
        else:
            print('非常抱歉!{0}品牌不在我们的保养范围内'.format(desc))
if __name__ == '__main__':
    car_1 = Car(4.2, 1.8, 1.5, '大众')
    car_1.basic_parameters()
    car_1.upkeep(car_1.brand)
    car_2 = Car(4.2, 1.8, 1.5, '保时捷')
    car_2.basic_parameters()
    car_2.upkeep(car_2.brand)


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
努力而奋斗的蜗牛 2019-10-02 22:25:13

你都返回错了  你判断的是 self.brand in Car.description: 是否在类的列表里面 。在你就返回这个self.brand  不在你就走else   那你就永远也进不了upkeep 这个方法   你应该这样判断 if  self.brand!='' 就直接返回  就OK了   还有  else判断 我怀疑老师搞多余了 根本用不到这个

慕之熠_灿烈 2019-09-23 10:54:45

同学,你好。

定义实例方法modify_des( )的用途是在完成车辆的初始化后,去验证类Car的属性description是否正确定义。若正确定义,才可以去调用类方法upkeep( );反之,则输出打印信息“请正确填写相关的车辆信息”。之所以你所初始化的两个实例可以正确显示是因为你直接调用了对应的upkeep( )方法,但是缺少了相关的逻辑验证。参考代码如下:

http://img1.sycdn.imooc.com//climg/5d883340092dbe8d12020655.jpg


调用modify_des( )参考代码:

http://img1.sycdn.imooc.com//climg/5d8833e10963025e10630235.jpg如果我的回答解决了您的疑惑,请采纳!祝~学习愉快~

  • 提问者 威风的小金币 #1
    我最开始的时候就是这个思路的,只不过可能是定义modify_des()的时候写得不对,导致出不了结果。没想到是用self.description,写了if self in Car.description,但这样写会报错,请问为什么呢?
    2019-09-24 12:55:41
  • 慕之熠_灿烈 回复 提问者 威风的小金币 #2
    你这样写的报错的原因是:在面向对象对象编程过程中,self表示的是当前类的实例化对象,“ if self in Car.description ”表示的含义是判断当前实例对象是否在类属性中description中。这与程序要求的逻辑是不对应的,且在语法上也不成立。
    2019-09-24 15:13:40
  • 感觉这个modify_des()判断还是多余的 ,为啥叫判断description是否存在?如果不存在的话 会直接报错的 根本就到不了这个方法 整个类都执行不了 何谈判断呢? 这里有点懵逼 。 感觉写了多余呀。并且如果类属性不在 都拿不到description这个去判断 。
    2019-10-02 22:34:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师