类——使用类和实例——修改属性值

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

    def __init__(self,make,model,year):

                                   '''初始化描述汽车的属性:制造商、型号、生产年份'''

        self.make = make
        self.model = model
        self.year = year

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

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

        return  long_name.title()


my_new_car = Car('audi','a4',2016)

print(my_new_car.get_descriptive_name())

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

执行结果:

2016   Audi   A4


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

给属性指定默认值


类中的每个属性都必须有初始值,哪怕这个值是0或者空字符串;


如果设置默认值,在方法_int_内指定这种初始值是可行的;


如果对某个属性这样做了,就无需包含为它提供初始值的形参。



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('这辆车的汽车里程是:  ' + str(self.odometer_reading))


my_new_car = Car('audi','a4',2016)

print(my_new_car.get_descriptive_name())

my_new_car.read_odometer()

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

执行结果:


2016   Audi   A4

这辆车的汽车里程是:  0




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


修改属性的值


有3种方法修改属性的值:

(1)直接通过实例进行修改;

(2)通过方法进行设置;

(3)通过方法进行递增(增加特定值)

---------------------------------------------------------------1)直接通过实例进行修改;


通过实例直接访问它,并修改


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('这辆车的汽车里程是:  ' + str(self.odometer_reading))


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()      #属性值被修改后访问

print(str(my_new_car.odometer_reading))     #属性值被修改后访问

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

your_new_car = Car('bentian','crv',2000)   #新实例

print(your_new_car.get_descriptive_name())   #新实例

print(str(your_new_car.odometer_reading))    #新实例访问变量


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

执行结果:



2016   Audi   A4

这辆车的汽车里程是:  0


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

这辆车的汽车里程是:  23

23


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

2000   Bentian   Cr

0


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

============================================================================2)通过方法修改属性的值

添加一个方法,让方法接收参数来修改


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

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

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

    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))


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


my_new_car = Car('audi','a4',2016)

print(my_new_car.get_descriptive_name())  #访问默认属性值

my_new_car.read_odometer() #访问默认属性值

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

my_new_car.update_odometer(23)

my_new_car.read_odometer()

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



执行结果:



2016   Audi   A4


这辆车的汽车里程是:  0


这辆车的汽车里程是:  23


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



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):      #修改属性值
                                                    '''将里程表读数设置为指定的值'''
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print('里程表读数不可以往回调')

    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))


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


my_new_car = Car('audi','a4',2016)

print(my_new_car.get_descriptive_name())  #访问默认属性值

my_new_car.read_odometer() #访问默认属性值

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

my_new_car.update_odometer(23)

my_new_car.read_odometer()

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


执行结果:



2016   Audi   A4

这辆车的汽车里程是:  24

里程表读数不可以往回调

这辆车的汽车里程是:  24


============================================================================
============================================================================3)通过方法对属性值进行递增


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))


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


my_new_car = Car('audi','a4',2016)

print(my_new_car.get_descriptive_name())  #访问默认属性值

my_new_car.read_odometer() #访问默认属性值

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

my_new_car.update_odometer(23)

my_new_car.read_odometer()

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


执行结果:



2016   Audi   A4

这辆车的汽车里程是:  24

这辆车的汽车里程是:  47

猜你喜欢

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