Python就业班——初识面向对象——练习——Vehicle

 1 #!/usr/bin/env python3
 2 # coding=utf-8
 3 # Version:python3.6.1
 4 # Project:practice
 5 # File:Vehicle.py
 6 # Data:2020/7/11 15:54
 7 # Author:LGSP_Harold
 8 
 9 """
10 编程练习
11 自定义一个交通工具类(Vehicle),并根据提示对该类进行进一步封
12 装,使其拥有工具类型、速度、体积等属性值。通过自定义实例方法
13 实现交通工具的前移、速度设置、获取当前速度、加速行驶、减速行
14 驶、实例信息展示、实例类型判别等功能。
15 
16 任务
17 1、自定义一个交通工具类(Vehicle)
18 2、设置类属性trans_type(固定值为'SUV')和实例属性速度speed
19 (int 类型,单位为 km/h)、体积size(tuple类型,单位为米。)
20 3、自定义方法 show_info( ),打印实例的所属类型和速度、体积的
21 值;
22 4、自定义实例方法如下:
23 (1)定义move( )方法,实现打印“我已向前移动了50米”
24 (2)定义set_speed(new_speed)方法,设置对应实例的速度为ne
25 w_speed km/h
26 (3)定义get_speed()方法,如果(2)中设置了速度值则打印出
27 来,打印格式为'我的时速为:设置的速度值 km/h'
28 (4)定义speed_up()方法,设置每次调用时实例的速度都增加10k
29 m/h,并打印“我的速度由xx km/提升到了xx km/h”
30 (5)定义speed_down()方法,设置每次调用时实例的速度都降低
31 15km/h,并打印“我的速度由xx km/下降到了xx km/h”
32 
33 5、自定义方法 transport_identify( ),判断实例是否为Vehicle类型。
34 若是则打印‘类型匹配’,反之则打印‘类型不匹配’
35 6、初始化实例对象tool_1
36 
37 任务提示
38 类的初始化方法中所传参数size是元组类型,直接传入实例的长,
39 宽,高即可,如size=(10,10,10)
40 """
41 
42 
43 class Vehicle(object):
44     trans_type = 'SUV'
45 
46     def __init__(self, speed, size):
47         self.speed = speed
48         self.size = size
49 
50     def show_info(self):
51         print('我的类型{0},速度{1}km/h,体积{2}'.format(self.trans_type,self.speed, self.size))
52 
53     def move(self):
54         print('向前移动50米')
55 
56     def set_speed(self, new_speed):
57         self.speed = new_speed
58 
59     def get_speed(self):
60         print('我的速度:{0}km/h'.format(self.speed))
61 
62     def speed_up(self):
63         old_speed = self.speed
64         self.speed += 10
65         print('我的速度由{0}km/h提升到{1}km/h'.format(old_speed, self.speed))
66 
67     def speed_down(self):
68         old_speed = self.speed
69         self.speed -= 10
70         print('我的速度由{0}km/h下降到{1}km/h'.format(old_speed, self.speed))
71 
72     def transport_identify(self, obj, class_base):
73         if isinstance(obj, class_base):
74             print('类型匹配')
75         else:
76             print('类型不匹配')
77 
78 
79 if __name__ == '__main__':
80     tool_1 = Vehicle(20, (3.6, 1.9, 1.75,))
81     tool_1.show_info()
82     tool_1.move()
83     tool_1.get_speed()
84     tool_1.speed_up()
85     tool_1.speed_up()
86     tool_1.speed_down()
87     tool_1.transport_identify(tool_1, Vehicle)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章