很多时候我的类有几个属性,而其他对象的属性依赖于这些属性。什么是定义和访问这些的最佳方式? 一个简单的例子应该解释我在问什么。链接到他人的对象属性:如何保持一致性?
说我有一个类,定义了一个圈:
class Circle:
def __init__(self, r):
self.r = r
现在这个圈子里被实例化正是基于半径,但我可能希望能够访问它的直径,这些都是可能性我见:
A)创建一个新的属性实例
class Circle:
def __init__(self, r):
self.r = r
self.d = 2*r
B时的)定义返回的直径的函数
class Circle:
def __init__(self, r):
self.r = r
def d(self):
d = 2*r
return d
解决方案A不保证一致性,如果用户更改r,d不会自动更新,并且可能很难追踪到该错误。解决方案B要求用户调用函数而不是访问属性。每次必须访问属性d时,都必须重新计算属性d,并且通常可能会耗费大量时间。
是否有解决方案C确保一致性,并且不需要类用户在每次访问时重新计算属性?
我在问自己同样的问题,但我对所给的回应并不满意。我认为必须有一个更加优雅的方法来解决这个问题...... – MonkeyButter