請問老師,代碼有需要優化的地方嗎?

来源:1-7 编程练习

慕桂英0504842

2019-12-15 10:51:43

class Vehicle(object):
    # 自定义Vehicle类属性
    trans_type = 'SUV'
    # 自定义实例的初始化方法
    def __init__(self, speed, size):
        self.speed = speed
        self.size = size
    # 自定义实例方法show_info,打印实例的速度和体积
    def show_info(self):
        res = '我的所屬類型為: {trans_type},速度:{speed}km/h,體積:{size}'.format(trans_type=self.trans_type, speed=self.speed, size=self.size)
        print(res)
    # 自定义实例方法move,打印“我已向前移动了50米”
    def move(self):
        print('我已向前移動了50米')
    # 自定义实例方法set_speed,设置对应的速度值
    def set_speed(self, new_speed):
        self.speed = new_speed
    # 自定义实例方法get_speed,打印当前的速度值
    def get_speed(self):
        print('我的時速為: {0}km/h'.format(self.speed))
    # 自定义实例方法speed_up,实现对实例的加速
    def speed_up(self):
        faster = self.speed + 10
        print('我的速度由{0} km/提升到了{1} km/h'.format(self.speed, faster))
        Vehicle.set_speed(self,faster)
    # 自定义实例方法speed_down,实现对实例的减速
    def speed_down(self):
        slower = self.speed - 15
        print('我的速度由{0} km/下降到了{1} km/h'.format(self.speed, slower))
        Vehicle.set_speed(self,slower)
    # 自定义实例方法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()

特別想問speed_up, speed_down, transport_identify這三個自定義函數~

另外, 題目提到speed為int類型、size為tuple類型, 這是需要設定在class裡面嗎, 還是僅作為我們自己知道就好呢?

写回答

1回答

好帮手乔木

2019-12-15

同学你好:

同学的代码没有问题。关于类型的问题:

同学需要在构造函数中定义:

def __init__(self,speed,size=()):
        self.speed = int(speed)
        self.size = size

加油!

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

0

0 学习 · 8160 问题

查看课程