所以,编程在Python 3,我有一个程序,其实质我蒸馏水在这个(非)功能的代码问题:Python对象交互
class One:
def __init__(self):
self.var1 = 1
def change(self):
two.var2 = 5
class Two:
def __init__(self):
one = One()
self.var2 = 2
one.change()
two = Two()
的IDLE解释抛出:
> Traceback (most recent call last):
File "C:/-", line 15, in <module>
two = Two()
File "C:/-", line 12, in __init__
one.change()
File "C:/-", line 6, in change
two.var2 = 5
NameError: name 'two' is not defined
显然,这样做,而不是:
class One:
def __init__(self):
self.var1 = 1
def change(self):
two.var2 = 5
class Two:
def __init__(self):
self.var2 = 2
one.change()
one = One()
two = Two()
...没有帮助,因为它给我确切的相同类型的错误。我真的不明白为什么会发生这种情况......或者如何以不同的方式构造它。我想我最后一次遇到这样的问题时,我通过嵌套类来避免它(相当混乱,只为了一层嵌套而工作,据我所知),但我真的很想知道如何使这两个嵌套对象正确地相互沟通。
编辑︰我有一个程序,其唯一的代码行实例化一个主类,我们称之为“地球”。在这个程序对象中,一切都会发生,包括其他类的实例化;让我们假设在这种情况下它只有一个,称之为“月亮”。我想要做的是月亮能够改变地球的状态及其不同的变量。
也许试图解释你想做什么可能会帮助我们将你引导到一个解决方案,因为目前上面的方法看起来有缺陷。 – AChampion
@AChampion同意,这可能是[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 – Aaron3468