Python属性最佳实践,属性内的一个函数

时间:2013-09-09 13:59:03

标签: python properties

拥有基本操作结果的属性是一种好习惯吗? 例如,假设我们有属性'a'和'b',我们可以直接从'a'和'b'推断属性'c'。这被认为是不好的编码风格吗?

@property 
def c(self):
    return self.a + self.b

谢谢!

2 个答案:

答案 0 :(得分:4)

使用属性的一个好处是,即使是非常简单的计算,如果ab发生更改,属性的有效值也会自动更新。

例如,如果c不是属性,则每次self.cself.a更改时都必须更新self.b的值:

self.a += 1
self.c = self.a + self.b

但如果c是一个属性,你可以简单地写

self.a += 1
self.c  # will already have the updated value

答案 1 :(得分:2)

这取决于具体情况。如果您拥有start_timeend_time属性,并且想要duration,则创建属性是有意义的。在其他情况下,它可能适合也可能不适合。但它不被认为是一种糟糕的编码风格。