import json
class A:
def __init__(self,name):
self.name = name
self.my_Bs = []
def registerB(self,b):
self.my_Bs.append(b)
def __str__(self):
_storage = {
"name" : self.name,
"my_Bs": [obj.name for obj in self.my_Bs]
}
return json.dumps(_storage)
__repr__ = __str__
class B:
def __init__(self,name):
self.name = name
self.my_As = []
def registerA(self,a):
self.my_As.append(a)
def __str__(self):
_storage = {
"name" : self.name,
"my_Bs" : [obj.name for obj in self.my_As]
}
return json.dumps(_storage)
__repr__ = __str__
# a list of As, a list of Bs
list_of_As = [A('firstA'), A('secondA')]
list_of_Bs = [B('firstB'), B('secondB')]
# example of one cross-reference
list_of_As[0].registerB(list_of_Bs[1])
list_of_Bs[1].registerA(list_of_As[0])
print(str(list_of_As))
print(str(list_of_Bs))