python修改 属性-python基础===修改属性的值

可以以三种不同的方式修改属性的值:直接通过实例进行修改;通过方法进行设置;通过方法进行递增(增加特定的值)。下面依次介绍这些方法。

classCar():def __init__(self, make, model, year):"""初始化描述汽车的属性"""self.make=make

self.model=model

self.year=year

self.odometer_reading=0 #修改这个属性的值defread_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()

1.直接修改属性的值

要修改属性的值,最简单的方式是通过实例直接访问它。下面的代码直接将里程表读数设置为23:

class Car():

--snip--

my_new_car = Car("audi", "a4", 2016)

print(my_new_car.get_descriptive_name())

my_new_car.odometer_reading = 23my_new_car.read_odometer()

我们使用句点表示法来直接访问并设置汽车的属性odometer_reading。这行代码让Python在实例my_new_car中找到属性odometer_reading,并将该属性的值设置为23:

2016Audi A4

This car has23 miles on it.

有时候需要像这样直接访问属性,但其他时候需要编写对属性进行更新的方法。

2. 通过方法修改属性的值

如果有替你更新属性的方法,将大有裨益。这样,你就无需直接访问属性,而可将值传递给一个方法,由它在内部进行更新。

下面的示例演示了一个名为update_odometer()的方法:

classCar():--snip--

defupdate_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()

>>>2016 Audi A4

This car has 23 miles on it.

对Car类所做的唯一修改是添加了方法update_odometer()。这个方法接受一个里程值,并将其存储到self.odometer_reading中。我们调用了update_odometer(),并向它提供了实参23(该实参对应于方法定义中的形参mileage)。它将里程表读数设置为23.

可对方法update_odometer()进行扩展,使其在修改里程表读数时做些额外的工作。下面来添加一些逻辑,禁止任何人将里程表读数往回调:

classCar():--snip--

defupdate_odometer(self, mileage):if mileage >=self.odometer_reading:

self.odometer_reading=mileageelse:print("You can"t roll back an odometer!")

现在,update_odometer()在修改属性前检查指定的读数是否合理。如果新指定的里程(mileage)大于或等于原来的里程(self.odometer_reading),就将里程表读数改为新指定的里程;否则就发出警告,指出不能将里程表往回拨.

3. 通过方法对属性的值进行递增

classCar():--snip--

defupdate_odometer(self, mileage):--snip--defincrement_odometer(self, miles):"""将里程表读数增加指定的量"""self.odometer_reading+=miles

my_used_car= Car("subaru", "outback", 2013)print(my_used_car.get_descriptive_name())

my_used_car.update_odometer(23500)

my_used_car.read_odometer()

my_used_car.increment_odometer(100)

my_used_car.read_odometer()

>>>2013 Subaru Outback

This car has 23500 miles on it.

This car has 23600 miles on it.

新增的方法increment_odometer()接受一个单位为英里的数字,并将其加入到self.odometer_reading中。在处,我们创建了一辆二手车——my_used_car。我们调用方法update_odometer()并传入23500,将这辆二手车的里程表读数设置为23 500。我们调用increment_odometer()并传入100,以增加从购买到登记期间行驶的100英里.

顺便提一下

如果你也喜欢Python 这里有一群Python爱好者汇集在此。

关注微信公众号:【软件测试技术】,回复 888,获取QQ群号。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值