1.将类中的对象关联起来(简单的方法)
class Person: def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex self.parter = None #先置空,后面赋值(用于关联对象) def do_private_stuff(self): pass p1 = Person('wdc',22,'男') p2 = Person('yhf',23,'女') # 双向绑定,将对象关联起来 p1.parter = p2 #将对象p2复制给对象p1的parter属性 p2.parter = p1 #将对象p1复制给对象p2的parter属性 # 打印对象的parter属性,查看其内容。 print(p1.parter.name,p2.parter.name)
解除关系:
class Person: def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex self.parter = None #先置空,后面赋值(用于关联对象) def do_private_stuff(self): pass p1 = Person('wdc',22,'男') p2 = Person('yhf',23,'女') # 双向绑定,将对象关联起来 p1.parter = p2 #将对象p2复制给对象p1的parter属性 p2.parter = p1 #将对象p1复制给对象p2的parter属性 # 打印对象的parter属性,查看其内容。 print(p1.parter.name,p2.parter.name) # 双向接触关联关系 p2.parter = None p1.parter = None print(p1.parter,p2.parter)
2.将类中对象关联起来(通过类关联)
class Relation: # 保存对象直接的关系 def __init__(self): self.couple = [] #创建空列表 def make_couple(self,obj1,obj2): self.couple = [obj1,obj2] #将传递进来的两个对象保存到同一列表中,关联在一起 print('{}和{}确定了情侣关系...'.format(obj1.name,obj2.name)) def get_my_parter(self,obj): # 循环列表中的对象,如果不是刚刚传进来的则返回。 for i in self.couple: if i != obj: return i else: print('你没用对象!') class Person: def __init__(self,name,age,sex,relation): self.name = name self.age = age self.sex = sex self.relation = relation #在每个人的实例中存储关系对象 def do_private_stuff(self): pass relation_boj = Relation() #创建保存关系的类的对象 p1 = Person('wdc',22,'男',relation_boj) p2 = Person('yhf',23,'女',relation_boj) relation_boj.make_couple(p1,p2) #通过对象向方法中传递对象p1和对象p2,让两个人相互关联 p1_obj = p1.relation.get_my_parter(p1) #拿到p1的伴侣的对象(p2) print('{}的情侣是{}'.format(p1.name,p1_obj.name)) p2_obj = p2.relation.get_my_parter(p2) #拿到p2的伴侣的对象(p1) print('{}的情侣是{}'.format(p2.name,p2_obj.name))
解除关系:
class Relation: # 保存对象直接的关系 def __init__(self): self.couple = [] #创建空列表 def make_couple(self,obj1,obj2): self.couple = [obj1,obj2] #将传递进来的两个对象保存到同一列表中,关联在一起 print('{}和{}确定了情侣关系...'.format(obj1.name,obj2.name)) def get_my_parter(self,obj): # 循环列表中的对象,如果不是刚刚传进来的则返回。 for i in self.couple: if i != obj: return i else: print('你没有对象!') def break_up(self,obj): print('{}主动解除了关系!'.format(obj.name)) self.couple.clear() #清空列表,解除关系 class Person: def __init__(self,name,age,sex,relation): self.name = name self.age = age self.sex = sex self.relation = relation #在每个人的实例中存储关系对象 def do_private_stuff(self): pass relation_boj = Relation() #创建保存关系的类的对象 p1 = Person('wdc',22,'男',relation_boj) p2 = Person('yhf',23,'女',relation_boj) relation_boj.make_couple(p1,p2) #通过对象向方法中传递对象p1和对象p2,让两个人相互关联 p1.relation.break_up(p1) #通过p1解除关系 #或通过p2解除关系:p2.relation.break_up() p1_obj = p1.relation.get_my_parter(p1) #拿到p1的伴侣的对象(p2) p2_obj = p2.relation.get_my_parter(p2) #拿到p2的伴侣的对象(p1)