使用需要其他模型方法结果的模型方法时,保留DRY的首选方法是什么?
例如:
class MyModel(models.Model):
a = models.IntegerField()
b = models.IntegerField()
c = models.IntegerField()
def _method_one(self):
x = a + b
return x
method_one = property(_method_one)
def _method_two(self):
x = a + b
y = x + c
return y
method_two = property(_method_two)
def _method_three(self):
x = a + b
y = x + c
z = x + y
return z
method_three = property(_method_three)
随着越来越多的方法依赖于之前的解决方案,我最终会重复代码。什么是最干净的处理方式?
提前致谢。
答案 0 :(得分:2)
为什么不这样做:
class MyModel(models.Model):
a = models.IntegerField(default=0)
b = models.IntegerField(default=0)
c = models.IntegerField(default=0)
@property
def x(self):
return self.a + self.b
@property
def y(self):
return self.x + self.c
@property
def z(self):
return self.x + self.y