使用类和实例.py

'''使用类和实例'''
class Car():
    """一次模拟汽车的简单尝试"""

    def __init__(self,make,model,year):
        """初始化描述汽车属性"""
        self.make = make
        self.model = model
        self.year  = year
        self.odometer_reading = 0

    def get_descriptive_name(self):
        """返回整洁的姓名"""
        long_name = str(self.year)+ ' '+ self.make + ' ' + self.model
        return long_name.title()

    def read_odometer(self):
        """打印一条指出汽车里程的消息"""
        print("This car has" + str(self.odometer_reading) + "miles on it.")
    #2用方法修改属性的值
    def update_odometer(self,mileage):
        """将里程表数设置为指定的值,禁止将里程表数回调"""
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print("You can't roll back an odometer!")
    #3通过方法对属性值的量进行递增
    def increase_odometer(self,miles):
        """将里程表读数增加指定的量"""
        self.odometer_reading += miles
my_new_car = Car('audi','a4',2016)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()
#直接修改属性的值
my_new_car.odometer_reading = 23
my_new_car.read_odometer()
#2用方法修改属性的值
my_new_car.update_odometer(23)
my_new_car.read_odometer()
#3将里程表读数增加指定的量
my_new_car.increase_odometer(100)
my_new_car.read_odometer()
"""继承"""
class ElectricCar(Car):
    """电动汽车的独特之处"""

    def __init__(self,make,model,year):
        """初始化父类的属性"""
        super().__init__(make,model,year)
        self.battery = Battery()
        '''添加一条新属性'''
        #self.battery_size = 70
    """添加一个描述battery的方法"""
    # def describe_batterry(self):
    #     """打印一条描述电瓶容量的消息"""
    #     print("This car has a" + str(self.battery_size) +'-KWH battery.')

# my_tesla = ElectricCar('tesla','model s',2016)
# print(my_tesla.get_descriptive_name())
# my_tesla.describe_batterry()

#重写父类的方法,在子类中添加方法同名父类中的,python首先考虑子类中的
    def fill_gas_tank(self):
        """电动汽车没有油箱"""
        print("This car doesn't need a gas tank!")

#将实例用做属性
class Battery():
    """一次模拟电动汽车点评的简单尝试"""

    def __init__(self,battery_size= 70):
        """初始化电瓶的属性"""
        self.battery_size = battery_size

    def describe_battery(self):
        """打印一条描述电瓶容量的消息"""
        print("This car has a " + str(self.battery_size) + "-KWH battery.")

    def get_range(self):
        """打印一条信息。 指出电瓶的续航里程"""
        if self.battery_size ==70:
            range = 240
        elif self.battery_size ==85:
            range = 270

        message = "This car can go approximately" + str(range)
        message += "miles on a full charge"
        print(message)

my_tesla = ElectricCar('tesla','model s','2016')
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()
my_tesla.battery.get_range()

 

 

 

posted @ 2016-11-02 10:42  JessisLong  阅读(222)  评论(0编辑  收藏  举报