假设我有一个类叫做加法器:
class adder(object):
def __init__(self, a, b):
self.a=a
self.b=b
self.result = None
def perform_addition(self):
self.result = self.a + self.b
return self.result
如果我实例化这个类:
myAdder = adder(1,2)
那么我的加法器结果取决于首先调用perform\u addition(),否则它将始终保持为无。换句话说,对于自我结果. 如果我们外推,一个更复杂的类可以有一个依赖链:也就是说,你必须在D之前调用函数a、B和C,因为它们反过来填充下一个函数需要的必要变量。你知道吗
这个班级设计不好吗?有什么补救办法? 我认为上面的例子是:https://en.wikipedia.org/wiki/Sequential_coupling
我认为这完全取决于你想做什么,以及你想怎么做。如果您希望对'perform\u addition()'的值有一个静态依赖,那么您拥有的代码不一定是坏的自我结果' . 但是如果您想要一个动态依赖,那么下面的代码将是一个好的简单方法。这样,当通过实例化值为“a”和“b”的类来创建对象时自我结果'将自动计算。你也可以使用更高级的工具,比如属性、装饰器、描述符等等,就像我说的,这完全取决于你想要什么。你知道吗
将
result
改为属性是一个很好的例子,这样只有在访问result
属性时才执行加法:输出:
3
如果
result
属性需要多次访问,并且所涉及的计算代价高昂,则可以将结果保存在实例变量中以避免重新计算:相关问题 更多 >
编程相关推荐