python类中修改属性值的3种方法
1、首先,新建一个水果大类,其中给shelflife属性指定一个默认值。代码示例如下:
class Fruit():
"""定义一个水果大类"""
def __init__(self,name,color):
self.name = name
self.color = color
self.shelflife = 7
def read_shelflife(self):
print(self.name + " has a shelf life of " + str(self.shelflife) + " days.")

2、接着,创建一个my_fruit实例,并通过句点表示法访问水果的保质期。
my_fruit = Fruit("watermelon","green")
my_fruit.read_shelflife()

3、然后我们通过直接修改属性的方法,将shelflife的值改成10,接着调用read_shelflife的方法重新访问属性值,发现属性值发生了变化。代码示例如下:
my_fruit.shelflife = 10
my_fruit.read_shelflife()

1、有时候我们不希望直接修改属性值,这个时候可以定义一个方法专门用来修改属性的值。代码示例如下:
def update_shelflife(self,shelflife):
""" 将水果保质期设置为指定的值"""
my_fruit.shelflife = shelflife

2、接着向方法传递实参并调用方法,发现属性值同样发生了变化。代码示例如下:
my_fruit.update_shelflife(10)
my_fruit.read_shelflife()

3、通过定义方法来修改属性值时,我们还可以对修改做一下限定,比如禁止将保质期这个属性增加。代码示例如下:
def update_shelflife(self,shelflife):
"""
将水果保质期设置为指定的值
禁止将保质期天数增加
"""
if shelflife < self.shelflife:
self.shelflife = shelflife
else:
print("You can't increase the shelf life.")

4、对属性修改做了限制之后,再传递实参调用方法时,不满足条件的情况下,属性值不会发生改变。如图。

1、我们还可以通过定义方法对属性的值进行递减或者递增,比如将保质期递减,代码示例如下:
def reduce_shelflife(self, shelflife):
"""将保质期天数减少指定的数"""
self.shelflife -= shelflife

2、定义了属性值递减的方法后,向方法传递实参并调用方法。代码示例如下:
my_fruit.reduce_shelflife(2)
my_fruit.read_shelflife()

1、方法1:直接修改属性的值
方法2:通过方法修改属性的值
方法3:通过方法对属性的值进行递减/增

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:141
阅读量:31
阅读量:166
阅读量:138
阅读量:108