假设我有一个名为Rectangle
的班级和另一个名为Force
的班级:
class Rectangle(object):
def __init__(self, l, h, x0, y0):
self.l = l
self.h = h
self.x0 = x0
self.y0 = y0
@property
def vertices(self):
return [(self.x0, self.y0), (self.x0, self.y0+self.h),
(self.x0+self.l, self.y0+self.h), (self.x0+self.l, self.y0)]
class Force(object):
def __init__(self, val, pt):
self.value = val
self.point = pt
假设我初始化
>>> r = Rectangle(10,6,0,0)
>>> f = Force(10,r.vertices[2])
因此我得到了
>>> r.vertices
[(0, 0), (0, 6), (10, 6), (10, 0)]
>>> f.point
(10, 6)
现在,我将矩形的高度更改为h=5
>>> r.h=5
>>> r.vertices
[(0, 0), (0, 5), (10, 5), (10, 0)]
我可以以某种方式自动更新f.point
吗?就像通过引用传递一样(但在python中不存在)。