所以,編程在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