我有一个名为Controller的全局(非类)python模块,它导入ClassA和ClassB进行初始化。我还在ClassA和ClassB内部导入Controller,以更新全局变量。
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 true循环检查变量是否发生了变化。我读过关于观察者的文章,但我认为(希望)有一个更简单的方法。
怎么样
def check():
if _element == "Round":
instance = __import__("ClassA")
elif _element == "Oval":
instance = __import__("ClassB")
并摆脱顶端的进口?