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