我在python中有一个类,我希望能够对一个对象进行操作,并让该操作依次识别另一个要更改的对象,然后对其进行修改。为了使这个具体:
假设我们有一堆位置(对象),每个位置都有一些东西(称之为元素)。我想告诉位置1
将其中一个元素移到location.move_right(element)
右侧。然后应该将该元素添加到位置2
。 (在我的实际问题中,"位置"需要计算它将移动到哪个位置,因此我不知道它的先验位置。)
这是我的工作代码。在课堂上,我放置了一个字典,用于存放所有已创建的对象。我可以想象这可能会给垃圾收集等带来麻烦。我怀疑有更好的方法。有吗?
class location(object):
locations = {}
def __init__(self, coordinate):
self.locations[coordinate]=self
self.coord = coordinate
self.elements = set()
def add_element(self, element):
self.elements.add(element)
def move_right(self, element):
self.elements.remove(element)
new_location = self.locations[self.coord+1]
new_location.add_element(element)
x = location(1)
y=location(2)
x.add_element('r')
x.move_right('r')