• 【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,接着打出来。
  • 相关阅读:
    DS博客作业02—线性表
    DS博客作业01--日期抽象数据类型
    c语言第六次作业---结构体&文件
    c语言博客05--指针
    c语言博客作业04--数组
    DS博客作业08-课程总结
    DS博客作业07--查找
    DS博客作业06--图
    DS博客作业-05--树
    DS-博客作业03--栈和队列
  • 原文地址:https://www.cnblogs.com/OliverQin/p/7868708.html
Copyright © 2020-2023  润新知