我有一个名为 Controller 的全局(非类)python模块,它导入 ClassA 和 ClassB 以进行实例化。我还在 ClassA 和 ClassB 中导入控制器以更新全局变量。
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循环进行检查。我读过关于观察者的内容,但我认为(希望)有一种更简单的方法。
答案 0 :(得分:0)
怎么回合
def check():
if _element == "Round":
instance = __import__("ClassA")
elif _element == "Oval":
instance = __import__("ClassB")
并摆脱顶部的导入?