Python:修改属性值

时间:2016-03-16 07:37:58

标签: python class properties

我有以下代码,它使用两个简单的属性:

class Text(object):

    @property
    def color(self):
        return 'blue'

    @property
    def length(self):
        return 22

t = Text()
print t.color

当我运行它时,它显然会返回blue。但是,如何在代码中稍后更新颜色值?即当我尝试做的时候:

t = Text()
print t.color
t.color = 'red'
print t.color

失败,出现can't set attribute错误。有没有办法修改属性的值?

修改

如果在williamtroup的回答中重写上面的代码以使用setter,那么简单地缩短它的优点是什么:

class Text(object):

    def __init__(self):
        self.color = self.add_color()
        self.length = self.add_length()

    def add_color(self):
        return 'blue'

    def add_length(self):
        return 22

1 个答案:

答案 0 :(得分:4)

你需要一个属性的setter和一个用于存储数据的类变量。

用你的例子:

70.4