拥有由非常基本的操作产生的属性是一种好习惯吗?例如,假设我们有属性“a”和“b”,我们可以直接从“a”和“b”推断属性“c”。这被认为是糟糕的编码风格吗?
@property
def c(self):
return self.a + self.b
谢谢!
拥有由非常基本的操作产生的属性是一种好习惯吗?例如,假设我们有属性“a”和“b”,我们可以直接从“a”和“b”推断属性“c”。这被认为是糟糕的编码风格吗?
@property
def c(self):
return self.a + self.b
谢谢!
使用属性的一个好处是,即使对于非常简单的计算,属性的有效值也会在发生变化时自动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
这取决于上下文。如果你有一个start_time
andend_time
属性并且你想要duration
它,那么创建一个属性是有意义的。在其他情况下,它可能合适也可能不合适。但它不被认为是一种糟糕的编码风格。