我可以访问包含另一个 class 的对象列表的对象的 属性
Can I access a property of an object containing a list of objects of another class
假设我有这样的事情:
class A:
def __init__(self, name, bs):
self.aname = name
self.bees = bs
aname = ''
bees = []
class B:
def __init__(self, name):
self.bname= name
bname= ''
def get_aname():
return aname # can I get this somehow
aobj = A('name of class A', [B('1'), B('2'), B('3')])
aobj.bees[0].get_aname() # result should be 'name of class A'
有什么办法可以得到 class A 的名字吗?
aname
是一个实例变量。要从 B
的实例访问它,您需要将 A
的实例传递给 B
,以便您的 B
实例访问 aname
.
但是您不能在 A
实例化之前传递它。相反,您可以定义 B
个实例的列表,并在后续步骤中将它们添加为 aobj
的属性:
class A:
def __init__(self, name, bs=None):
self.aname = name
self.bees = bs
aname = ''
bees = []
class B:
def __init__(self, name, a_inst):
self.a_inst = a_inst
self.bname= name
bname= ''
def get_aname(self):
return self.a_inst.aname
aobj = A('name of class A')
L = [B('1', aobj), B('2', aobj), B('3', aobj)]
aobj.bees = L
aobj.bees[0].get_aname() # 'name of class A'
假设我有这样的事情:
class A:
def __init__(self, name, bs):
self.aname = name
self.bees = bs
aname = ''
bees = []
class B:
def __init__(self, name):
self.bname= name
bname= ''
def get_aname():
return aname # can I get this somehow
aobj = A('name of class A', [B('1'), B('2'), B('3')])
aobj.bees[0].get_aname() # result should be 'name of class A'
有什么办法可以得到 class A 的名字吗?
aname
是一个实例变量。要从 B
的实例访问它,您需要将 A
的实例传递给 B
,以便您的 B
实例访问 aname
.
但是您不能在 A
实例化之前传递它。相反,您可以定义 B
个实例的列表,并在后续步骤中将它们添加为 aobj
的属性:
class A:
def __init__(self, name, bs=None):
self.aname = name
self.bees = bs
aname = ''
bees = []
class B:
def __init__(self, name, a_inst):
self.a_inst = a_inst
self.bname= name
bname= ''
def get_aname(self):
return self.a_inst.aname
aobj = A('name of class A')
L = [B('1', aobj), B('2', aobj), B('3', aobj)]
aobj.bees = L
aobj.bees[0].get_aname() # 'name of class A'