目录
1、给属性指定默认值
类中,给在方属性指定默认值是在init_()内指定初始值。如果指定了默认值,在创建实例时,就不用包含提供初始值的形参。
下边例子是统计汽车信息的类,其中为odometer_reading属性的初始值总是0(指定了默认值):
#!/usr/bin/env python
# -*- coding:utf-8 -*-
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("This car has " + str(self.odometer_reading) + " miles on it.")
my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()
运行结果:
2、修改属性的值
修改属性的值,可以通过实例直接修改属性值;通过方法进行设置;通过方法进行递增(增加特定的值)。
(1)实例直接修改属性值:
class Car():
--snip--
my_new_car=Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading=23 # 通过实例直接修改属性的值
my_new_car.read_odometer()
运行结果
(2)通过方法修改属性的值
class Car():
--snip--
# 添加的方法来修改属性的值
def update_odometer(self, mileage):
"""将历程表读数设置为指定的值"""
self.odometer_reading = mileage
my_new_car=Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
my_new_car.update_odometer(23)
my_new_car.read_odometer
运行结果:
(3)通过方法对属性的值ji逆行递增
class Car():
--snip--
def update_odometer(self,mileage)
--snip--
# 通过方法对属性的值进行递增
def increment_odometer(self, miles):
"""将里程表读数增加指定的量"""
self.odometer_reading += miles
my_used_car = Car('audi', 'a4', 2014)
print(my_used_car.get_descriptive_name())
my_used_car.update_odometer(23500)
my_used_car.read_odometer()
my_used_car.increment_odometer(100) # 通过方法递增100miles
my_used_car.read_odometer()
运行结果: