zoukankan      html  css  js  c++  java
  • 【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,接着打出来。
  • 相关阅读:
    charles使用教程指南
    根域名服务器 根服务器一般指根域名服务器 (DNS)
    DNS原理及其解析过程【精彩剖析】
    代理工具Charles使用
    cisco 为每个单独的人员设置不同的用户名和密码
    大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合
    KAFKA分布式消息系统
    Android 监听屏幕锁屏,用户解锁
    如何判断微信内置浏览器
    Android,iOS,浏览器打开手机QQ与指定用户聊天界面
  • 原文地址:https://www.cnblogs.com/OliverQin/p/7868708.html
Copyright © 2011-2022 走看看