Python学习笔记第12天

每日一句:最可怕的敌人,就是没有坚强的信念。

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.")
        
    def update_odometer(self,mileage):
        """1.将里程表读数设置为指定的值,2.禁止将里程表读数往回调"""
# 1.self.odometer_reading=mileage
# 2.修改1.
        if mileage>=self.odometer_reading:
            self.odometer_reading=mileage
        else:
            print("You can't roll back an odometer!")
    
    def increment_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()

print("--------")

# 修改属性方法一:直接修改属性的值
my_new_car.odometer_reading=200  
my_new_car.read_odometer()

print("--------")

# 修改属性方法二:通过方法修改属性的值
my_new_car.update_odometer (25)
my_new_car.read_odometer()

print("--------")

my_new_car.update_odometer (250)
my_new_car.read_odometer()

print("--------")

# 修改属性方法三:通过方法对属性进行递增
my_user_car=Car('subaru','outback',2013)
print(my_user_car.get_descriptive_name())

my_user_car.update_odometer (2500)
my_user_car.read_odometer()

my_user_car.increment_odometer(100)
my_user_car.read_odometer()

print("----------------------")

# 继承

# 子类方法__int__()
class ElectricCar(Car):
# 创建了子类ElectricCar,括号中是父类的名字
# 父类与子类必须在一个文件里,父类要在子类前面
    """电动汽车的独特之处"""
    
    def __int__(self,make,model,year):
        """初始化父类的属性"""
        super().__int__(make,model,year)
        # 给子类定义属性和方法
        self.battery_size = 70
    
    def describe_battery(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_battery()
2016 Audi A4
This car has 0 miles on it.
--------
This car has 200 miles on it.
--------
You can't roll back an odometer!
This car has 200 miles on it.
--------
This car has 250 miles on it.
--------
2013 Subaru Outback
This car has 2500 miles on it.
This car has 2600 miles on it.
----------------------
2016 Tesla Model S
This car has a 70-kwh battery.
posted @ 2020-04-17 23:22  过气诗人  阅读(137)  评论(0)    收藏  举报