我想調用一個使用全局變量的類的方法,但似乎有我的邏輯有問題。通過類的全局變量?
在下面的代碼中,A
調用B
,它調用C
,它調用B
的方法。
x = None
class A():
def __init__(self):
global x
x = B()
class B():
def __init__(self):
C()
def bla(self):
print('bla')
class C():
def __init__(self):
global x
x.bla()
A()
我得到的錯誤:
我缺少什麼?
謝謝你的時間。我明白現在發生了什麼。你能提出一種從B類中調用bla方法的方法嗎?我只嘗試使用全局變量,因爲我相信它會起作用。從技術上講,我所需要的是將這種B方法稱爲從A到B到C然後回到B方法。 –
@VictorJosé:你什麼時候需要/想打電話給'bla'?調用它很簡單:只需從'B .__ init__'中刪除對'C()'的調用,然後執行'x = B()',然後執行'x.bla()'。在你的例子中'C'的用途不明確,因爲'C'除了調用'x.bla'外什麼都不做。你爲什麼不直接從'B .__ init__'調用'self.bla()'?你應該編輯你的問題來解釋C正在做什麼以及它和B之間的關係。例如,你可能想讓C接受一個參數,然後調用'C(self)',這樣'C'可以在正在初始化的'B'實例上調用'bla'。 – BrenBarn