Python中如何在Action对象内将自身添加到关联Event对象的actions列表
实现方法
首先你现有代码里的Event类的add_action方法存在语法错误,你把列表的append方法直接赋值了,正确的写法应该是调用append方法传入要添加的对象:
class Event(object): def __init__(self, attributes): self.attributes = attributes self.actions = [] def add_action(self, action): # 修正原有写法错误:原代码是给append方法赋值,属于语法错误 self.actions.append(action)
接下来你要在Action的add_event方法里把当前实例加入对应Event的actions列表,直接调用传入的event实例的add_action方法,把self作为参数传入即可,完整的Action类写法如下:
class Action(object): def __init__(self, attributes): self.attributes = attributes self.event = None def add_event(self, event): self.event = event # 直接把当前self实例传入event的add_action方法即可完成关联 event.add_action(self)
调用示例
你在Action逻辑里创建Event实例后,直接调用当前Action实例的add_event方法传入刚创建的Event即可完成双向关联:
# 示例调用 my_action = Action(attributes={"name": "测试动作"}) new_event = Event(attributes={"name": "测试事件"}) my_action.add_event(new_event) # 验证关联效果 print(my_action.event is new_event) # 输出True print(my_action in new_event.actions) # 输出True
内容的提问来源于stack exchange,提问作者therickster
相关产品推荐
相关产品推荐

