编程练习
自定义一个交通工具类(Vehicle),并根据提示对该类进行进一步封装,使其拥有工具类型、速度、体积等属性值。通过自定义实例方法实现交通工具的前移、速度设置、获取当前速度、加速行驶、减速行驶、实例信息展示、实例类型判别等功能。
效果图如下:

任务
自定义一个交通工具类(Vehicle)
设置类属性trans_type(默认值为SUV)和实例属性速度speed(int 类型,单位为 km/h)、体积size(tuple类型,单位为米。)
自定义方法 show_info( ),打印实例的所属类型和速度、体积的值;
自定义实例方法如下:
- 定义move( )方法,实现打印”我已向前移动了50米”
- 定义set_speed(new_speed)方法,设置对应实例的速度为new_speed km/h
- 定义get_speed()方法,如果(2)中设置了速度值则打印出来,打印格式为”我的时速为:设置的速度值 km/h”
- 定义speed_up()方法,设置每次调用时实例的速度都增加10km/h,并打印”我的速度由xx km/提升到了xx km/h”
- 定义speed_down()方法,设置每次调用时实例的速度都降低15km/h,并打印”我的速度由xx km/下降到了xx km/h”
自定义方法 transport_identify( ),判断实例的trans_type属性是否为SUV。若是则打印”类型匹配”,反之则打印”类型不匹配”
初始化实例对象tool_1,并根据上述效果图调用对应方法
任务提示
- 类的初始化方法中所传参数size是元组类型,直接传入实例的长,宽,高即可,如size=(10,10,10)
初始代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| class Vehicle(object): if __name__ == "__main__": tool_1 = Vehicle(20, (3.6, 1.9, 1.75)) tool_1.set_speed(40)
|
代码提交区
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
class Vehicle(object): trans_type = 'SUV'
def __init__(self, speed, size): self.speed = speed self.size = size
def show_info(self): print('所属类型:{},速度是{}km/h,体积是{}'.format(self.trans_type, self.speed, self.size))
def move(self): print('我已向前移动了50米')
def set_speed(self, speed): self.speed = speed
def get_speed(self): print('我的时速为:{}'.format(self.speed))
def speed_up(self): self.__new_speed = self.speed + 10 print('我的速度由{}km/h,提升到了{}km/h'.format(self.speed,self.__new_speed))
def speed_down(self): self.__speed = self.speed - 15 print('我的速度由{}km/h,下降到了{}km/h'.format(self.speed, self.__speed))
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()
|
结果检验
1 2 3 4 5 6 7 8 9 10
| C:\Python39\python.exe C:/Users/admin/PycharmProjects/python_object/hello.py 所属类型:SUV,速度是20km/h,体积是(3.6, 1.9, 1.75) 我已向前移动了50米 我的时速为:40 我的速度由40km/h,提升到了50km/h 我的速度由40km/h,下降到了25km/h 类型匹配
进程已结束,退出代码为 0
|
学霸答案区
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| class Vehicle(object): trans_type = 'SUV' def __init__(self,speed,size): self.speed = speed self.size = size
def show_info(self): print('速度:{0}km/h,体积:{1}'.format(self.speed,self.size)) def move(self): print('我已经向前移动了50米') def set_speed(self,speed): self.speed = speed def get_speed(self): print('我的时速为:{0}km/h'.format(self.speed)) def speed_up(self): speed2 = self.speed+10 print('我的速度由{0}km/h提升到了{1}km/h'.format(self.speed,speed2)) self.speed = speed2 def speed_down(self): speed3 = self.speed - 15 print('我的速度由{0}km/h下降到了{1}km/h'.format(self.speed,speed3)) self.speed = speed3 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()
|