类——将实例用作属性

class Car():
    '''一次模拟汽车的简单尝试'''

    def __init__(self,make,model,year):
        '''初始化描述汽车的属性:制造商、型号、生产年份'''

        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 24              #里程表读数

    def update_odometer(self,mileage):      #修改属性值
        '''将里程表读数设置为指定的值'''

        self.odometer_reading += mileage


    def get_descriptive_name(self):
        '''返回整洁的描述信息'''

        long_name = str(self.year) + '   ' + self.make + '   ' + self.model

        return  long_name.title()

    def read_odometer(self):
        '''打印一条指出汽车里程的信息'''
        print('这辆车的汽车里程是:  ' + str(self.odometer_reading))


    def fill_gas_tank(self):
        '''汽车油箱'''

        print('汽车有油箱')

#------------------------------------------------------------------
#------------------------------------------------------------------
#--------------------------------------------------------------------

class Battery():
    '''模拟电动车电瓶'''

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


    def describe_battery(self):
        '''打印一条描述电瓶容量的信息'''

        print('这辆电动车有: ' + str(self.battery_size) + ' 的电瓶容量')


    def fill_gas_tank(self):               #重写父类的方法
        '''电动车有电瓶'''

        print('汽车有电瓶')



    def get_rang(self):

        print('这辆车的行驶距离是:  ' + str(self.battery_size*3))
#----------------------------------------------------------------------
#------------------------------------------------------------------
#------------------------------------------------------------------

class ElectricCar(Car):
    '''电动车的独特之处'''

    def __init__(self,make,model,year):
        '''初始化父类属性'''
        super().__init__(make,model,year)

        self.battery = Battery()


#------------------------------------------------------------------
#------------------------------------------------------------------
#------------------------------------------------------------------

my_tesla = ElectricCar('特斯拉','model  s ',2016)

print(my_tesla.get_descriptive_name())




my_tesla.battery.describe_battery()

my_tesla.battery.fill_gas_tank()

my_tesla.battery.get_rang()



=========================================================


执行结果:



2016   特斯拉   Model  S 

这辆电动车有: 70 的电瓶容量

汽车有电瓶

这辆车的行驶距离是:  210





===================================================================

===================================================================

===================================================================




class Car():
    '''一次模拟汽车的简单尝试'''

    def __init__(self,make,model,year):
        '''初始化描述汽车的属性:制造商、型号、生产年份'''

        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 24              #里程表读数

    def update_odometer(self,mileage):      #修改属性值
        '''将里程表读数设置为指定的值'''

        self.odometer_reading += mileage


    def get_descriptive_name(self):
        '''返回整洁的描述信息'''

        long_name = str(self.year) + '   ' + self.make + '   ' + self.model

        return  long_name.title()

    def read_odometer(self):
        '''打印一条指出汽车里程的信息'''
        print('这辆车的汽车里程是:  ' + str(self.odometer_reading))


    def fill_gas_tank(self):
        '''汽车油箱'''

        print('汽车有油箱')

#----------------------------------------------------------------------
#--------------------------------------------------------------------
#------------------------------------------------------------------

class Battery():
    '''模拟电动车电瓶'''

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


    def describe_battery(self):
        '''打印一条描述电瓶容量的信息'''

        print('这辆电动车有: ' + str(self.battery_size) + ' 的电瓶容量')


    def fill_gas_tank(self):               #重写父类的方法
        '''电动车有电瓶'''

        print('汽车有电瓶')


    def get_rang(self):

        print('这辆车的行驶距离是:  ' + str(self.battery_size*3))
#----------------------------------------------------------------------
#----------------------------------------------------------------------
#------------------------------------------------------------------

class ElectricCar(Car):
    '''电动车的独特之处'''

    def __init__(self,make,model,year):
        '''初始化父类属性'''
        super().__init__(make,model,year)

        self.battery = Battery(100)

#------------------------------------------------------------------
#------------------------------------------------------------------
#------------------------------------------------------------------



my_tesla = ElectricCar('特斯拉','model  s ',2016)

print(my_tesla.get_descriptive_name())


my_tesla.battery.fill_gas_tank()

my_tesla.battery.describe_battery()

my_tesla.battery.get_rang()




=================================================
=================================================
=================================================
=================================================



2016   特斯拉   Model  S 

汽车有电瓶

这辆电动车有: 100 的电瓶容量

这辆车的行驶距离是:  300

猜你喜欢

转载自www.cnblogs.com/xiaobaibailongma/p/12061626.html