带你自学Python系列(十六):Python中类的用法(二)

↑ 点击上方【计算机视觉联盟】关注我们

 

今天是小编持续更新关于Python的知识总结以及Python实践项目应用的第5天,带你利用零碎时间自学最受欢迎的编程语言之一Python语言。你和小编一起打卡了吗?

640?wx_fmt=gif

1、给属性指定默认值

类中,给在方属性指定默认值是在init_()内指定初始值。如果指定了默认值,在创建实例时,就不用包含提供初始值的形参。

下边例子是统计汽车信息的类,其中为odometer_reading属性的初始值总是0(指定了默认值):

 1#!/usr/bin/env python
 2# -*- coding:utf-8 -*-
 3class Car():
 4    """一次模拟汽车的简单尝试"""
 5
 6    def __init__(self, make, model, year):
 7        """初始化描述汽车的属性"""
 8        self.make = make
 9        self.model = model
10        self.year = year
11        self.odometer_reading = 0  # 指定默认值
12
13    def get_descriptive_name(self):
14        """返回整洁的描述性信息"""
15        long_name = str(self.year) + ' ' + self.make + ' ' + self.model
16        return long_name.title()
17
18    def read_odometer(self):
19    """打印一条指出汽车里程的消息"""
20    print("This car has " + str(self.odometer_reading) + " miles on it.")
21
22my_new_car = Car('audi''a4'2016)
23print(my_new_car.get_descriptive_name())
24my_new_car.read_odometer()

运行结果:

640

2、修改属性的值

修改属性的值,可以通过实例直接修改属性值;通过方法进行设置;通过方法进行递增(增加特定的值)。

(1)实例直接修改属性值:

1class Car():
2    --snip--
3
4my_new_car=Car('audi''a4'2016)
5print(my_new_car.get_descriptive_name())
6
7my_new_car.odometer_reading=23   # 通过实例直接修改属性的值
8my_new_car.read_odometer()

运行结果:

640

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

 

 1class Car():
 2    --snip--
 3
 4    # 添加的方法来修改属性的值
 5    def update_odometer(self, mileage):
 6        """将历程表读数设置为指定的值"""
 7        self.odometer_reading = mileage
 8
 9my_new_car=Car('audi''a4'2016)
10print(my_new_car.get_descriptive_name())
11
12my_new_car.update_odometer(23)
13my_new_car.read_odometer

 

运行结果:

640

(3)通过方法对属性的值ji逆行递增

 1class Car():
 2    --snip--
 3
 4    def update_odometer(self,mileage)
 5        --snip--
 6    # 通过方法对属性的值进行递增
 7    def increment_odometer(self, miles):
 8        """将里程表读数增加指定的量"""
 9        self.odometer_reading += miles
10
11my_used_car = Car('audi''a4'2014)
12print(my_used_car.get_descriptive_name())
13
14my_used_car.update_odometer(23500)
15my_used_car.read_odometer()
16
17my_used_car.increment_odometer(100)  # 通过方法递增100miles
18my_used_car.read_odometer()

 

运行结果:

带你自学Python系列(十六):Python中类的用法(二)_第1张图片

往期回顾

● 带你详细了解机器视觉竞赛—ILSVRC竞赛

● 到底什么是“机器学习”?机器学习有哪些基本概念?(简单易懂)● 带你自学Python系列(一):变量和简单数据类型(附思维导图)● 带你自学Python系列(二):Python列表总结-思维导图● 2018年度最强的30个机器学习项目!● 斯坦福李飞飞高徒Johnson博士论文: 组成式计算机视觉智能(附195页PDF)

● 一文详解计算机视觉的广泛应用:网络压缩、视觉问答、可视化、风格迁移

带你自学Python系列(十六):Python中类的用法(二)_第2张图片

640

你可能感兴趣的:(WeChat)