class Bar:
def __init__(self):
pass
class Foo:
def __init__(self):
self.items = [Bar(), Bar(), Bar()]
a = Foo()
在本例中,Foo
具有一个属性items
,该属性包含Bar
的实例
在Python3.5中,如何执行以下操作:
class Bar:
def __init__(self):
print(container.baz)
其中container.baz
是指包含它的Foo
实例中的属性baz
背景
我试图创建这样的东西,每个Bar
都有一个id
属性,由idGenerator()
半随机生成。ID的一部分是属于Bar
实例的Foo.items
的索引,ID是从Bar
内生成的。我希望这能把事情弄清楚
只需将
self
传递到Bar()
,然后完成:如果您可以传递除
self
之外的更具体的信息,那么就这样做Python对象一直有对它们的引用的加载。在您的示例中,列表中包含一个类的三个实例,该列表是从
Foo
的实例引用的。但还有其他的参考资料。比如a.items[0]
,以及Python堆栈,等等。Python没有本地的工具来让您发现对象存在什么引用,因为这是徒劳的,不断地变化,并且非常、非常、非常快地过时只需显式地传递所需的信息,或者作为
self
(对Foo()
实例的引用),或者作为Bar()
中需要的其他内容来完成它的工作相关问题 更多 >
编程相关推荐