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

 1 #!/usr/bin/env python3
 2 # coding=utf-8
 3 # Version:python3.6.1
 4 # Project:practice
 5 # File:Car.py
 6 # Data:2020/7/13 17:37
 7 # Author:LGSP_Harold
 8 
 9 """
10 根据Python中面向对象的相关知识,对客户车辆的基本信息进行录
11 入,并分析得出针对同类型的车辆进行合理保养的相关建议。
12 
13 任务
14 1、自定义Car类,并重写其构造(初始化)方法__init__( ),将参数l,
15 w,h,brand赋值给实例对象的属性L,W,H,brand。设置类属性
16 description,以列表形式初始化值为:'大众','丰田','广本','沃尔
17 沃', '凯迪拉克'
18 2、自定义该类实例方法modify_des ( )。功能:判断类属性descripti
19 on是否存在,若存在,直接返回;反之,返回“请输入您的车辆描
20 述”
21 3、自定义静态方法basic_parameters( )。功能:打印‘已完成车辆
22 基本参数信息的录入!’
23 4、自定义类方法upkeep( ),并接收参数desc。功能:判断参数desc
24 是否在类属性description之中,若条件成立则打印“根据汽车保养的
25 相关经验,xx品牌的车应于5000km/次的频率进行专业性保养”;反
26 之则打印“非常抱歉!xx品牌不在我们的保养范围内”
27 5、实例化Car类对象car_1,并调用实例方法basic_parameters()
28 6、运用if-else结构,调用实例(car_1)方法modify_des( )作为if语
29 句的判断条件,若成立则调用实例的upkeep( )方法,并将实例car_1
30 的brand属性传递给参数desc;反之则打印:'请正确填写相关的车辆
31 信息'
32 7、实例化Car类对象car_2,并调用实例方法basic_parameters()
33 8、运用if-else结构,调用实例(car_2)方法modify_des( )作为if语
34 句的判断条件,若成立则调用实例的upkeep( )方法,并将实例car_2
35 的brand属性传递给参数desc;反之则打印:'请正确填写相关的车辆
36 信息'
37 
38 任务提示
39 在自定义类方法upkeep( )时,为了在打印语句中成功获取车辆(实例
40 对象)的brand属性,需在upkeep( )设置一个参数desc接收传递的属
41 性。
42 """
43 
44 class Car(object):
45 
46     description = ['大众', '丰田', '广本', '沃尔沃', '凯迪拉克']
47 
48     def __init__(self, l, w, h, brand):
49         self.L = l
50         self.W = w
51         self.H = h
52         self.brand = brand
53 
54     def modify_des(self):
55         if hasattr(self, 'description'):
56             return True
57         else:
58             print('请输入您的车辆描述')
59             return False
60 
61     @staticmethod
62     def basic_parameters():
63         print('已经完成车辆基本参数信息的录入!')
64     
65 
66     @classmethod
67     def upkeep(cls, desc):
68         if desc in cls.description:
69             print('根据汽车保养的相关经验,{0}品牌的车应于5000km/次的频率进行专业性保养'.format(desc))
70         else:
71             print('抱歉,{0}不在我们保养的范围'.format(desc))
72     
73 
74     
75 
76 
77 if __name__ == '__main__':
78     car = Car(1, 2, 3, '大众')
79     car.basic_parameters()
80     if not car.modify_des():
81         print('请正确填写相关的车辆信息')
82     Car.upkeep(car.brand)
83     car_2 = Car(1, 2, 3, '小米')
84     car_2.basic_parameters()
85     if not car_2.modify_des():
86         print('请正确填写相关的车辆信息')
87     Car.upkeep(car_2.brand)
88     

 

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