gpt4 book ai didi

python - 我可以访问包含另一个类的对象列表的对象的属性吗

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:04 24 4
gpt4 key购买 nike

假设我有这样的东西:

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'

有什么办法可以得到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'

关于python - 我可以访问包含另一个类的对象列表的对象的属性吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51378776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com