【Python】使用类和实例

Car类

class Car():
    '''模拟汽车'''
    def __init__(self,name,model,year):
        '''初始化汽车的属性'''
        self.name = name
        self.model = model
        self.year = year
    def get_describe_car(self):
        '''返回描述性信息'''
        long_name = str(self.year)+' '+self.name + ' '+self.model
        return(long_name)

#创建实例
My_new_car = Car('Audi','A4','2016')
print(My_new_car.get_describe_car())

上图是新建的一个Car类,并且我们创建了实例,并将其存储到My_new_car中

给属性指定默认值

如果在方法__init__()中指定了默认值,那么就无需包含为它提供初始值的形参

class Car():
    '''模拟汽车'''
    def __init__(self,name,model,year):
            '''初始化汽车的属性'''
            self.name = name
            self.model = model
            self.year = year
            self.miters = 0
    def get_describe_car(self):
            '''返回描述性信息'''
            long_name = str(self.year)+' '+self.name + ' '+self.model
            return(long_name)

    def print_miters(self):
            print("This car has " + str(self.miters) +" miles on it")
#创建实例
My_new_car = Car('Audi','A4','2016')
print(My_new_car.get_describe_car())
My_new_car.print_miters()

上述代码中定义了一个初始值,在形参中我们就没有为其传入值,但是在方法print_miters中我们又使用了该属性

修改属性的值

三种方法修改属性的值:

①直接通过实例进行修改

②通过方法进行设定

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

1.通过实例进行修改

class Car():
    '''模拟汽车'''
    def __init__(self,name,model,year):
            '''初始化汽车的属性'''
            self.name = name
            self.model = model
            self.year = year
            self.miters = 0
    def get_describe_car(self):
            '''返回描述性信息'''
            long_name = str(self.year)+' '+self.name + ' '+self.model
            return(long_name)

    def print_miters(self):
            print("This car has " + str(self.miters) +" miles on it")
#创建实例
My_new_car = Car('Audi','A4','2016')
print(My_new_car.get_describe_car())
My_new_car.miters = 100
My_new_car.print_miters()

2.通过方法进行设定

无需直接访问属性,可将值传递给一个方法,由他在内部进行更新

class Car():
    '''模拟汽车'''
    def __init__(self,name,model,year):
            '''初始化汽车的属性'''
            self.name = name
            self.model = model
            self.year = year
            self.miters = 0
    def get_describe_car(self):
            '''返回描述性信息'''
            long_name = str(self.year)+' '+self.name + ' '+self.model
            return(long_name)
    def update_miters(self,miters):
        self.miters = miters

    def print_miters(self):
            print("This car has " + str(self.miters) +" miles on it")
#创建实例
My_new_car = Car('Audi','A4','2016')
print(My_new_car.get_describe_car())
My_new_car.update_miters(200)
My_new_car.print_miters()

3.通过方法对属性值进行递增特定的量,而不是将其设置为全新的值

class Car():
    '''模拟汽车'''

    def __init__(self, name, model, year):
        '''初始化汽车的属性'''
        self.name = name
        self.model = model
        self.year = year
        self.miters = 0

    def get_describe_car(self):
        '''返回描述性信息'''
        long_name = str(self.year) + ' ' + self.name + ' ' + self.model
        return (long_name)

    def update_miters(self,miters):
        self.miters = miters

    def increment_miters(self,add_miters):
        '''将里程设置为指定的数'''
        self.miters += add_miters

    def print_miters(self):
        print("This car has " + str(self.miters) + " miles on it")


# 创建实例
My_user_car = Car('Audi', 'A4', '2016')
print(My_user_car.get_describe_car())

My_user_car.update_miters(200)
My_user_car.print_miters()

My_user_car.increment_miters(100)
My_user_car.print_miters()
新增的方法increment_miters()接受一个数字后,并将其加入到update_miters()已经修改过的里程数,我们调用方法update_miters()传入200,然后调用increment_miters()又在200基础上新增100,接着打出来。
posted @ 2017-11-20 23:01  OLIVER_QIN  阅读(878)  评论(0编辑  收藏  举报