3

拥有由非常基本的操作产生的属性是一种好习惯吗?例如,假设我们有属性“a”和“b”,我们可以直接从“a”和“b”推断属性“c”。这被认为是糟糕的编码风格吗?

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

谢谢!

4

2 回答 2

4

使用属性的一个好处是,即使对于非常简单的计算,属性的有效值也会在发生变化时自动a更新b

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

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

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

self.a += 1
self.c  # will already have the updated value
于 2013-09-09T14:21:38.490 回答
2

这取决于上下文。如果你有一个start_timeandend_time属性并且你想要duration它,那么创建一个属性是有意义的。在其他情况下,它可能合适也可能不合适。但它不被认为是一种糟糕的编码风格。

于 2013-09-09T14:01:37.230 回答