老师,麻烦帮我看一下课后作业输出这样,是什么原因

来源:1-6 选择练习

dba菜鸟

2019-10-07 00:31:41

class Vehicle(object):
    # 自定义Vehicle类属性
    Vehicle = '交通工具'
    # 自定义实例的初始化方法
    def __init__(self, speed, size, trans_type = 'SUV'):
        self.trans_type = trans_type
        self.__speed = speed
        self.size = size
    # 自定义实例方法show_info,打印实例的速度和体积
    def show_info(self):
        rest = '我的所属类型为:{0},速度{1},体积:{2}'.format(self.trans_type, self.__speed,  self.size)
        print(rest)
        return rest
    # 自定义实例方法move,打印“我已向前移动了50米”
    def move(self):
        print('我已向前移动了50米')
    # 自定义实例方法set_speed,设置对应的速度值
    def set_speed(self, speed):
        self.__speed = speed
    # 自定义实例方法get_speed,打印当前的速度值
    def get_speed(self):
        print('我的时速为:{0}km/h'.format(self.__speed))
    # 自定义实例方法speed_up,实现对实例的加速
    def speed_up(self):
        print('我的速度由{0}km/提升到了{1}km/h'.format(self.set_speed, self.get_speed))
    # 自定义实例方法speed_down,实现对实例的减速
    def speed_down(self):
        print('我的速度由{0}km/下降到了{1}km/h'.format(self.get_speed, self.set_speed))
    # 自定义实例方法transport_identify,实现对实例所属类型的判断
    def transport_identify(self):
        if isinstance(tool_1, Vehicle):
            print('类型匹配')
        else:
            print('类型不匹配')
if __name__ == "__main__":
    tool_1 = Vehicle(20, (3.6, 1.9, 1.75))
    
    # 调用实例方法 打印实例的速度和体积
    tool_1.show_info()
    # 调用实例方法 实现实例的前移
    tool_1.move()
    tool_1.set_speed(40)
    # 调用实例方法 打印当前速度
    tool_1.get_speed()
    # 调用实例方法 对实例进行加速
    tool_1.speed_up()
    # 调用实例方法 对实例进行减速
    tool_1.speed_down()
    # 调用实例方法 判断当前实例的类型
    tool_1.transport_identify()http://img.mukewang.com/climg/5d9a16a509d7acd912870159.jpg

写回答

3回答

好帮手乔木

2019-10-09

同学你好:

出现问题:

1     设置类属性trans_type(固定值为'SUV')

定义类属性,未按照题目要求

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

2     定义speed_up()方法,设置每次调用时实例的速度都增加10km/h,并打印“我的速度由xx km/提升到了xx km/h”

        定义speed_down()方法,设置每次调用时实例的速度都降低15km/h,并打印“我的速度由xx km/下降到了xx km/h”

同学的方法未完成。

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

3 自定义方法 transport_identify( ),判断实例(在类的自定义方法中,self代表类的实例对象)是否为Vehicle类型

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

参考:

class Vehicle(object):
    # 自定义Vehicle类属性
    trans_type = 'SUV'
    # 自定义实例的初始化方法
    def __init__(self,speed,size=()):
        self.speed = int(speed)
        self.size = size
    # 自定义实例方法show_info,打印实例的速度和体积
    def show_info(self):
        print("我所属的类型:{},速度:{},体积:{}".format(self.trans_type,self.speed, self.size))
    # 自定义实例方法move,打印“我已向前移动了50米”
    def move(self):
        print("我已向前移动了50米")
    # 自定义实例方法set_speed,设置对应的速度值
    def set_speed(self, newspeed):
        self.speed = newspeed
    # 自定义实例方法get_speed,打印当前的速度值
    def get_speed(self):
        print("我的时速为:{}".format(self.speed))
    # 自定义实例方法speed_up,实现对实例的加速
    def speed_up(self):
        speed = self.speed + 10
        print("我的速度由{}km/h提升到了{}km/h".format(self.speed, speed))
        self.speed = speed
    # 自定义实例方法speed_down,实现对实例的减速
    def speed_down(self):
        speed = self.speed - 15
        print("我的速度由{}km/h下降到了{}km/h".format(self.speed, speed))
        self.speed = speed
    # 自定义实例方法transport_identify,实现对实例所属类型的判断
    def transport_identify(self):
        if isinstance(self, Vehicle):
            print("类型匹配")
        else:
            print("类型不匹配")
if __name__ == "__main__":
    tool_1 = Vehicle(20, (3.6, 1.9, 1.75))
    
    # 调用实例方法 打印实例的速度和体积
    tool_1.show_info()
    # 调用实例方法 实现实例的前移
    tool_1.move()
    tool_1.set_speed(40)
    # 调用实例方法 打印当前速度
    tool_1.get_speed()
    # 调用实例方法 对实例进行加速
    tool_1.speed_up()
    # 调用实例方法 对实例进行减速
    tool_1.speed_down()
    # 调用实例方法 判断当前实例的类型
    tool_1.transport_identify()

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

0

white_lie

2019-10-09

仔细一看,问题还是很多的,你对比一下看看

class Vehicle(object):
    # 自定义Vehicle类属性
    trans_type = '交通工具'

    # 自定义实例的初始化方法
    def __init__(self, speed, size):
        self.__speed = int(speed)
        self.size = size

    # 自定义实例方法show_info,打印实例的速度和体积
    def show_info(self):
        rest = '我的所属类型为:{0},速度:{1} km/h,体积:{2}'.format(self.trans_type, self.__speed, self.size)
        print(rest)
        # return rest

    # 自定义实例方法move,打印“我已向前移动了50米”
    def move(self):
        print('我已向前移动了50米')

    # 自定义实例方法set_speed,设置对应的速度值
    def set_speed(self, new_speed):
        self.__speed = int(new_speed)

    # 自定义实例方法get_speed,打印当前的速度值
    def get_speed(self):
        print('我的时速为:{0}km/h'.format(self.__speed))

    # 自定义实例方法speed_up,实现对实例的加速
    def speed_up(self):
        new_speed = self.__speed + 10
        print("我的速度由{0}km/h提升到了{1}km/h".format(self.__speed, new_speed))
        self.__speed = new_speed

    # 自定义实例方法speed_down,实现对实例的减速
    def speed_down(self):
        new_speed = self.__speed - 15
        print("我的速度由{0}km/h下降到了{1}km/h".format(self.__speed, new_speed))
        self.__speed = new_speed

    # 自定义实例方法transport_identify,实现对实例所属类型的判断
    def transport_identify(self):
        if isinstance(self, Vehicle):
            print('类型匹配')
        else:
            print('类型不匹配')


if __name__ == "__main__":
    tool_1 = Vehicle(20, (3.6, 1.9, 1.75))
    # 调用实例方法 打印实例的速度和体积
    tool_1.show_info()
    # 调用实例方法 实现实例的前移
    tool_1.move()
    tool_1.set_speed(40)
    # 调用实例方法 打印当前速度
    tool_1.get_speed()
    # 调用实例方法 对实例进行加速
    tool_1.speed_up()
    # 调用实例方法 对实例进行减速
    tool_1.speed_down()
    # 调用实例方法 判断当前实例的类型
    tool_1.transport_identify()


0

white_lie

2019-10-08

  1. 函数speed_up和函数speed_down中调用的函数get_speed后没加括号

  2. 函数get_speed是输出,并非return返回字符串

修改建议:

    将get_speed函数调整为return所需字符串,并将函数speed_up和函数speed_down中调用的实参改为self.get_speed()

0
hba菜鸟
h 还是没搞清楚,可以把答案代码给我对比一下吗
h019-10-08
共1条回复

0 学习 · 8160 问题

查看课程