第15课租借共享单⻋——项⽬实训根据题⽬需要,一个单车类Bike,用来实例化单车对象,绑定单车的属性。一个平台管理类Manage,将查询车辆,共享车辆,租借车辆,归还车辆功能封装到该类中。所以我们需要⽤到初始化⽅法__init__,让实例被创建时⾃动获得这些属性。######同时我们需要实现上图中的45个功能,那就得定义另⼀个类Manage,该类含有五个⽅法(含主菜单):①、主菜单:defmenu()②、查询车辆:info_bike()③、共享车辆:add_bike()④、租借车辆:lease_bike()⑤、归还车辆:revert_bike()######⽽为什么要分为两个类呢,主要是我们Bike类是为了让程序每次实例时初始化它的属性值,Manage类是为了实现我们的功能,⼆者区分开来,有利于代码的易读和整洁性######好了,我们再看回代码,Bike类不难理解,⼀个初始化化函数__init__包含了四个实例化属性,⽽另⼀个函数__str__,这个函数也是实例化后就执⾏,并返回return后⾯所带的值############接下来我们来分析⼀下Manage类############这⾥也定义了⼀个初始化函数,其中bikeA、bikeB、bikeC是实例化对象,实例化了类Bike,即这三个是默认存在的。接下来的三个append语句的结果是self.bike_list=[bikeA,bikeB,bikeC],即实例化对象的属性.bike_list含有这三个值############接下来的menu⽅法,主要是提供了我们对于功能的选择,根据我们的选择跳转执⾏相对应的⽅法############info_bike⽅法中,forbikeinself.bike_list,根据我们之前学的知识,这⼀步是为了遍历上⽅说的self.bike_list列表,⽽因为实例化Bike类后会执⾏__str__函数,即会有返回值,所以可以显示⽬前所有的⻋辆信息############add_bike⽅法中,代码⽐较简单,是让我们⼿动输⼊后,把这些值传⼊后实例化类Bike,并在self.bike_list中添加############select_bike⽅法,我们依旧是遍历我们的self.bike_list列表,相信同学们没有忘记self.bike_list=[bikeA,bikeB,bikeC]],⽽bikeA,bikeB,bikeC是我们的实例化对象,所以bike.NO实际上就是我们的实例化属性NO,当实例化属性NO等于我们外部传⼊的值NO时,我们就返回当前匹配的实例化对象.############lease_bike⽅法,⼿动输⼊后,调⽤我们上⾯说到的select_bike⽅法,如果返回值不为空,则继续下⼀步,再判断我们的state属性是否为1,是则⽆法租借,否则可以租借⻋辆,并把当前⻋辆的state值改为1(当该⻋辆未归还则⽆法租借)############最后⼀个⽅法revert_bike,依旧是传⼊select_bike⽅法进⾏判断,根据返回值判断该⻋辆是否之前已经存在在这个系统中,有则继续继续判断state值,不为0则归还成功######最后我们实例化类Manage,再调⽤它的menu⽅法执⾏开始程序的运⾏