如何避免这种循环依赖



我有一个名为Controller的全局(非类)python模块,它导入ClassAClassB进行初始化。我还在ClassAClassB内部导入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")

并摆脱顶端的进口?

相关内容

  • 没有找到相关文章

最新更新