拥有基本操作结果的属性是一种好习惯吗? 例如,假设我们有属性'a'和'b',我们可以直接从'a'和'b'推断属性'c'。这被认为是不好的编码风格吗?
@property
def c(self):
return self.a + self.b
谢谢!
答案 0 :(得分:4)
使用属性的一个好处是,即使是非常简单的计算,如果a
或b
发生更改,属性的有效值也会自动更新。
例如,如果c
不是属性,则每次self.c
或self.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_time
和end_time
属性,并且想要duration
,则创建属性是有意义的。在其他情况下,它可能适合也可能不适合。但它不被认为是一种糟糕的编码风格。