【发布时间】:2022-01-08 14:29:32
【问题描述】:
在对象(第一个)内创建一个对象(第二个)后,我想访问第一个对象。如果不将第一个对象作为属性赋予第二个对象,这是否可能?
在下面的代码中,我可以访问我的第一个对象。我只是好奇是否有更好的方法来获得类似的东西,而不是将我的第一个对象传递给我的第二个对象。
class first():
def __init__(self,v):
self.a = v
self.b = second(self)
class second():
def __init__(self, first):
self.changefirst(first)
def changefirst(self,first):
first.a = 5
x = first(3)
print(x.a)
输出: 5
【问题讨论】:
-
否;对象对引用它们的内容一无所知,因此如果您希望
second的实例知道first的实例,则需要显式提供该引用。 -
不,没有更好的办法。
-
同一个
second对象可以被多个对象引用。 -
根据您的操作,您可能希望保存对
first的引用,而不是使用它并丢弃它。self.first = first.