我有一个全球性的(不是类)蟒蛇叫控制器模块,其中进口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