我有一個全球性的(不是類)蟒蛇叫控制器模塊,其中進口ClassA的和ClassB的爲intantiating。我也進口控制器裏面類A和類B更新全局變量。如何避免這種循環依賴?
from Controller import setElement
from Tkinter import *
ClassA(object):
def __init__(self):
root = Tk()
setElement("Oval")
root.mainloop()
ClassB(object):
def __init__(self):
root = Tk()
setElement("Round")
root.mainloop()
from subclasses import ClassA, ClassB
_element = None
def setElement(element):
_element = element
check()
def check():
if _element == "Round":
instance = ClassA
elif _element == "Oval":
instance = ClassB
那麼,有一個非常簡單的方法來重構它。我不想將全局變量移動到一個新文件中,然後在變量發生變化的情況下使用while循環進行檢查。我讀過關於觀察者的文章,但我認爲(希望)有一個更簡單的方法。
你是類定義是不正確的,你的第二代碼塊中的'import'語句也不能工作。你是否試圖從block1導入A,B'? – Takis
這只是一個例子來證明我的問題。我忘了從*寫。 eddited- – Sens4